ios - UINavigationController 隐藏导航栏

标签 ios uinavigationcontroller uinavigationbar

使用 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/

相关文章:

ios - 标题字体在导航栏中没有改变

iOS:帮助模糊主视图顶部的屏幕

ios - 如何创建具有两个组件(月份和年份)的 DatePicker,这也将显示所有月份作为选择全年的选项?

ios - 将数组添加在一起后,有没有办法知道哪些元素来自哪个父数组?

ios - 触摸开始错误;我触摸屏幕的任何地方游戏都会崩溃

ios - 在 UIImageView 中显示本地镜像

ios - 第二次加载 ViewController 时,self.navigationController 为 nil

ios - 奇怪的 UINavigationController 问题

ios - 在 iOS 13 上更改 UIBarButtonItem 字体

iphone - iOS UINavigationBar 标题文本颜色 (iOS 4)