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

尝试以下

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

没有运气任何想法?

最佳答案

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

这只是一个可能的解决方案。您可以在非root用户控制器中保留viewWillDisappear的未定义状态,而在root用户控制器中定义viewWillAppear的方法...如您所见,它最方便。

[1]将导航栏隐藏在除根控制器之外的任何其他内容中,都可以使其卡在导航层次结构的中间。此外,这也违反了iOS应用中的直观导航功能,突然隐藏了除根视图以外的任何内容的导航栏。)

07-25 23:05
查看更多