self.navigationController.navigationBar.hidden = TRUE 在一个 UI



在我的应用程序中,我至少有十几个UIViewController,其中一些显示导航栏,有些则不显示。 除了一个控制器之外,所有控制器上都运行良好。

我从另一个没有显示导航栏的屏幕导航到此屏幕。在这个问题上,我需要显示导航栏,所以在我的viewWillAppear中我有以下代码:

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

当我使用调试器单步执行代码时,我会浏览这一行,但是它只是被忽略,并且没有显示导航栏。 这似乎是模拟器和实际设备(iPhone 4S与iOS 5.1.1)上的问题。

我在这里错过了什么?

我猜,我又遇到了苹果"只是血腥地做"的事情。

除了在 viewWillAppear 方法中包含该行之外,我还将其添加到viewDidLoad

self.navigationController.navigationBarHidden = NO;

现在它按照我想要的方式工作。 有趣的是,如果我删除两行中的任何一行,它都不起作用;它仅适用于两条线。

无论如何,它现在都可以工作。

我也有类似的问题。事实证明,我离开的视图控制器[self.navigationController setNavigationBarHidden:NO animated:YES];了它的viewWillDisappear方法,这导致它在过渡时动画化,而不管viewWillAppear中的内容如何

该行将更改工具栏的可见性,而不是导航栏

也许你有这样的方法:

-(void)viewWillAppear:(BOOL)animated
{
  [self.navigationController setNavigationBarHidden:NO animated:YES];
  [super viewWillAppear:animated];
}

所以移动[超级...]线,把它改成这个(在 RootView Controller 和目标视图控制器中):

-(void)viewWillAppear:(BOOL)animated
{
   [super viewWillAppear:animated];
   [self.navigationController setNavigationBarHidden:NO animated:YES];
}

这对我有用。

相关内容

最新更新