使用 xcode 4.2 和 iOS 5,并在根 Controller 和其他四个 View (包括 UITable View )上有导航栏,我想要的只是在第一个 Root View Controller 中隐藏导航栏并在所有其他 View 中显示...
尝试了以下
[self.navigationController setNavigationBarHidden:YES animated:animated];
运气不好,有什么想法吗?
最佳答案
在您的根 Controller (或您想要隐藏导航栏的所有 View Controller 。请参阅[1])中使用此代码,以便根据您的目标隐藏/显示导航栏:
- (void)viewDidLoad {
...
[self.navigationController setNavigationBarHidden:YES animated:NO];
...
}
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:animated];
....
}
- (void)viewWillDisappear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:animated];
...
}
这只是一个可能的解决方案。您可以在非根 Controller 中保留 viewWillDisappear
未定义,并在根 Controller 中定义 viewWillAppear
...您认为这对您来说最方便。
[1] 将导航栏隐藏在除根 Controller 之外的任何位置中,可能会导致卡在导航层次结构的中间。此外,突然隐藏除 Root View 之外的其他任何内容的导航栏也是不利于 iOS 应用程序中直观导航的。)
关于ios - UINavigationController 隐藏导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932770/