私はNavigationControllerを備えたrootViewControllerを持っています。rootViewではnavigationBarは非表示になっています。次のビューを押すと、navBarが表示されます。したがって、2番目のビューからrootViewに戻ると、navBarが非表示になります。それは大丈夫。次に、2番目のビューから3番目のビューに移動して、navBarを表示します。ただし、2番目のビューでは、2番目のビューからアクセスしたときにrootViewでnavBarを非表示にするコードがあるため、非表示になっています。
-(void)viewWillDisappear:(BOOL)animated{
[super viewWilDisappear:animated];
[self.navigationcontroller setNavigationBarHidden:YES animated:YES];
}
rootViewでのみnavBarを表示し、他のすべてのビューで非表示にするにはどうすればよいですか?
2番目のビューはUIViewControllerのサブクラスであり、3番目のビューもUIViewControllerのサブクラスであり、IBによって作成されたUITableViewを備えています。
UPD
最初のviewControllerでこれを追加しました:
-(void)viewDidLoad{
[self.navigationController setNavigationBarHidden:YES];
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
そして第3にこれ:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
助けてくれてありがとう、みんな!