0

私は次のようなviewControllersを持っています:


startViewController ------> menuViewController 
                                          \
                                           \ ------> ImportantViewController

startMenuプッシュしてからmenuView再度プッシュしimportantViewimportantView以下のように親ビューになるように rootViewcontroller として作成しました。

UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: vc];
[self presentModalViewController: navControl animated: YES];

それから、次の方法でビューをプッシュしましたimportantView

[self.navigationController pushViewController:vc animated:YES];

今私の問題は次のようなものです:

ここに画像の説明を入力

ImportantVIewrootViewプッシュしmenuViewViewA からビューBにプッシュしてから、に戻るか戻るかを選択menuViewしますViewA

私の質問は: 私は自分を rootView として作成したいのですがViewB、そこに行くとImportantViewas に戻りrootViewます。2 つの rootView を持つことは可能ですか? それとも、お互いを交換する必要がありますか?

助けていただければ幸いです。ありがとう。

4

1 に答える 1

1

ルートビューコントローラを常に変更する理由は何ですか?

viewAとviewBをサークルで呼び出すと、ビューコントローラーの無限のスタックが構築されます。それはおそらくあなたがやりたいことではありません。

一歩下がって、達成しようとしていることを再考してください。viewAとviewBを変更したいだけですか?その場合、通常のpushViewControllerとは異なるアーキテクチャ/パターンを選択する必要があります。removeFromParentViewControllerまたはtransitionFromViewController:toViewController:について少し読んでください。または、ViewControllerのチェーンを自分で操作することに慣れてください。これらのことは、View Controllerの無限のスタックを構築することなく、作成したいユーザーエクスペリエンスを実現するのに役立つ可能性があります。

于 2012-07-11T08:50:52.723 に答える