ここでは、次のとおりです。
- 作成新しいUINavigationController
viewDidLoad
またはviewWillLoad
あなたが望むルートにコントローラを割り当てて初期化します
- NavigationControllerのビューのサイズを変更し、それを親viewCntrollerのビュー(私はself.contentViewを持っています)に追加します。
BOOM !!ここ
は
- (void)viewDidLoad
{
[super viewDidLoad];
[self.contentView setFrame:CGRectMake(0, 0, self.contentView.bounds.size.width, self.contentView.bounds.size.height)];
mNavController =[[UINavigationController alloc]initWithRootViewController:myNestedRootController];/
[self.mNavController.view setFrame:CGRectMake(0, 0, self.contentView.bounds.size.width, self.contentView.bounds.size.height)];
[self.mNavController setNavigationBarHidden:YES]; //optional
[self.contentView addSubview:self.mNavController.view];
}
実際にあなたがcontentViewをスキップすることができますし、viewcontroller's view
(私の悪い)上で直接mNavController's
ビューを持って...コードである
私は(プッシュのみ)プッシュする方法を持っているA新しいVC
-(void)moveToContentViewController:(PM_BaseContentVC *)contentvc animated:(BOOL)animated{
[self.mNavController popToRootViewControllerAnimated:NO]; //silently pop the previous viewcontroller
[self.mNavController pushViewController:contentvc animated:YES]; //push new viewcontrolelr
[self.contentView addSubview:self.mNavController.view]; //add the view
}
sugestionsと最適化は歓迎されている:)
はい、入れ子のナビゲーションコントローラは悪い考えです。 'pushViewController:animated:'はナビゲーションコントローラに渡すと例外をスローします。ビューコントローラとUIフローをどのように構築するかについて、別の質問をするべきでしょう。 –
奇妙なIBは、ネストした 'UINavigationController'を持つNIBを追加することができます。私は私のアプリを再構築できるかどうかを見ていきます。 –