0

私の最初のiPadプロジェクトに取り組んでいて、多くの誤ったスタートの後、ルート/ポップオーバーの下部に4タブのタブバーを備えたスプリットビューコントローラーで構成される基本的なインターフェイスがあります。

4つのタブのそれぞれに4つの異なるViewControllerがあります。これらのうち3つにはテーブルが含まれ、4つ目には設定スライダーとスイッチが含まれています。これはすべて、ポートレートまたはランドスケープで正常に機能します。

私が直面している課題は、これらのさまざまなタブから詳細ビューを操作する方法です。3つのテーブルすべてが同じデータを参照し、並べ替えが異なるため、必ずしも複数の詳細ビューは必要ありません。したがって、それらはすべて同じ詳細ビューに接続する可能性があります。

このように使用されているタブバーの例は他に見つかりませんが、私のアプリには最適なソリューションのようです。

テーブルセルを選択したときにdetailItem情報が詳細ビューに表示されるように接続を確立するにはどうすればよいですか?IBのルートビューにタブバーが追加されました。代わりにプログラムで追加する必要がありますか?

これを機能させるサンプルプロジェクトはありますか?

ありがとう!

4

1 に答える 1

0

この「タブバー」の部分に巻き込まれすぎないでください。より単純なアプリがどのように機能するかを検討してください。RootViewControllerでセルを選択した場合、DetailViewControllerにどのように通知しますか?

自動ではありません。ほとんどの場合、RootViewControllerからDetailViewControllerへの専用接続があり、RootViewControllerからDetailViewControllerのメソッドを次のように呼び出します。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

RootViewControllerのメソッド。実際、これがテンプレートUISplitViewiPadアプリのセットアップ方法です。RootViewControllerからDetailViewControllerへのIBOutlet接続があります。

メモリを正しく管理している(保持、解放)限り、(ルート)ビューコントローラー(タブビュー内)のそれぞれが単一のDetailViewControllerに接続していれば問題はありません。タブ付きコントローラーが相互にステップしないようにするには、ロジックを「ミドルマン」クラスに一元化することをお勧めします。たぶん、ViewControllerBがViewControllerAがソートしたばかりの詳細をソートする直前に何かをクリーンアップしたいと思うかもしれません...

その部分はあなた次第です。RootViewControllerで選択されたセルに基づいて何かを表示するように、DetailViewControllerが自動的に更新されるような、バックエンドのブラックマジックが行われていないことに注意してください。

于 2011-02-23T23:29:27.507 に答える