アプリにナビゲーションコントローラーを追加しようとしていますが、それは好きです:
インデックス ページ ビュー コントローラーで、ナビゲーション コントローラーを次のように初期化しようとしています。
-(void)viewDidLoad{
...
//allocate a navigation controller.
myNavigationController = [[UINavigationController alloc]init];
myNavigationController.delegate = self;
myNavigationController.navigationBar.hidden = YES;
[self.view addSubview:myNavigationController.view];
[myNavigationController pushViewController:tabViewController animated:YES];
[self presentModalViewController:myNavigationController animated:YES];
}
ここで、インデックス ページ ビュー コントローラーは私のアプリのルート ビュー コントローラーです。ここでは単なる一般的な UIViewController です。
[myNavigationController pushViewController:tabViewController animated:YES];
ここでナビゲーション コントローラーにプッシュした tabViewController は、コンテナー ビューを使用してタブ ボタンを保持し、タブ切り替え用のナビゲーション コントローラーも保持するカスタム tabview コントローラーです。
ここでの問題は次のとおりです。
myNavigationController.navigationBar.hidden = YES;
ナビゲーション バーを非表示にしたため、カスタム ビュー コントローラーが表示されたときに表示されませんが、ナビゲーション コントローラーを使用して他のビュー コントローラーに切り替えたい場合や、ナビゲーション バーを表示したい場合:
myNavigationController.navigationBar.hidden = NO;
MyViewController *toSwitchNC = [[MyViewController alloc]init];
[myNavigationController pushViewController:toSwitchNC animated:YES];
ナビゲーション バーが表示されなくなりました。私も入れようとしました:
self.navigationController.navigationBar.hidden = NO
MyViewController の viewDidLoad、ViewDidAppear、またはナビゲーション コントローラーのデリゲート メソッドでさえ、ナビゲーション バーも表示されませんでした。
それで、それの何が問題なのですか?最初にナビゲーション バーを非表示に初期化したのはなぜですか? 非表示フラグを false に設定しても、再び表示されることはありません。