0

UINavigationControllersに質問があります。自分がやろうとしていることをどう表現したらいいのかわからないので、試してみます。:)UINavigationController階層が機能しています。正常に動作します。

ただし、「プッシュされた」ViewControllerクラスはそれ自体を表示するのではなく、プッシュ先の子ViewControllerを決定するという状況があります。

MasterVC -> DeciderVC -> forwards to fooVC
or                    -> forwards to barVC

基本的に[self.navigationController pushViewController:DeciderVC animated:NO]、ロジックを使用して、[self.navigationController pushViewController:fooVC animated:NO]またはbarVC

それをMasterVCにハードコーディングすることもできますが、重要なのは、MasterVC、fooVC、barVCをそのままにして、さまざまなシナリオでDeciderVCを再利用したいということです。これを行うにはどうすればよいですか?

ありがとう

編集: ワークフローの簡単な説明: MasterVCいくつかの可能な関数セットを表示します。ユーザーが関数セットAを選択するDeciderObjectAと、呼び出されてプッシュされfooVC、データが記録され、プッシュされてデータが収集され、もう一度barVCプッシュbarVCされてデータが収集されます。その後DeciderObjectA、そのデータを処理します。ユーザーが関数セットBを選択すると、DeciderObjectBgetsが呼び出され、次にデータがプッシュbarVCされfooVC、次にデータが処理されます。
DeciderObjectsは、@protocolとの両方fooVCで宣言された同じデリゲートメソッドに対して異なる応答をしbarVCます。

4

2 に答える 2

0

DeciderViewControllerが何も表示していない場合、なぜそれが表示されなければならないのUIViewControllerですか?私の目には、戦略をチェックし、次にプッシュするコントローラーを決定する単純なNSObjectもので十分です。あなたの用語では、どちらをプッシュするかを決定するコードがMasterVCにあります。(間にあることのメリットがわかりませんUIViewController。何かが足りない場合は詳しく説明してください。)

MasterVC -> fooVC 
MasterVC -> barVC
于 2012-11-05T19:00:17.057 に答える
0

DeciderVCまたはにすべてを単純に転送できますfoobar? viewDidLoadforで適切なものを単純にインスタンス化し、それをのビューDeciderに割り当てることはできませんか?viewDecider

例えば

Decider.m
- (void) viewDidLoad:(BOOL)animated {
...
UIViewController *fooVC = [[FooVC alloc] init];
[self.view addSubview:fooVC.view];
...
}
于 2012-11-05T17:09:27.713 に答える