3

在我的应用程序中,我至少有十几个UIViewController,其中一些显示导航栏,其中一些不显示。除一个控制器外,一切都正常。

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

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

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

我在这里想念什么?

4

4 回答 4

3

我想,我又遇到了另一件苹果“该死的”的事情。

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

self.navigationController.navigationBarHidden = NO;

现在它可以按我的意愿工作。有趣的是,如果我删除这两行中的任何一行,它都不起作用;它仅适用于两条线。

无论如何,它现在有效。

于 2012-05-31T14:36:54.557 回答
3

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

于 2014-11-19T00:22:15.200 回答
2

也许你有这样的方法:

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

所以移动 [super ...] 线,把它改成这个(在你的 RootViewController 和目标视图控制器中):

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

这对我有用。

于 2012-10-14T08:50:49.590 回答
2

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

于 2012-05-31T14:29:22.490 回答