UINavigationController隐藏导航栏

时间:2012-01-19 20:26:25

标签: ios uinavigationcontroller uinavigationbar

使用xcode 4.2和iOS 5并在根控制器上有导航栏和其他四个视图(包括UITable视图)我想要的是在第一个根视图控制器中隐藏导航栏并在所有其他视图中显示...

尝试以下

[self.navigationController setNavigationBarHidden:YES animated:animated];

没有运气好吗?

2 个答案:

答案 0 :(得分:3)

在您的根控制器(或您希望拥有隐藏导航栏的所有视图控制器中使用此代码。请参阅[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];
    ...
 }

这只是一种可能的解决方案。您可以在非根控制器中保留viewWillDisappear未定义,并在根控制器中定义viewWillAppear ...因为您认为最方便。

[1]将导航栏隐藏在根控制器之外的任何位置,都可能卡在导航层次结构的中间。此外,在iOS应用程序中直接导航会突然隐藏导航栏,而不是根视图。)

答案 1 :(得分:1)

您可以使用此代码隐藏此内容

self.navigationController.navigationBar.hidden = YES;

在视图中使用此代码加载