NavigationBar内容在视图中使用prefersStatusBarHidden = YES从pop中消失

时间:2014-09-30 19:29:09

标签: ios objective-c iphone

我的iPhone应用程序中有一个相当简单的设置,带有导航控制器和视图控制器。视图控制器有一个标题,对于我的大多数视图,按下其他视图控制器按预期工作:标题用作导航栏上“后退”按钮的标签,并显示新视图。从堆栈中弹出新视图后,将显示旧视图及其标题。

但是,只要推送的视图控制器使用返回值YES实现prefersStatusBarHidden,导航栏中的标题就会在从堆栈中弹出此视图后消失 - 它仍然为空,甚至不显示我的自定义右栏按钮。

此外,在横向而不是纵向中执行此操作不会显示此行为 - 标题正确显示。如果您在纵向中遇到此问题,您可以将手机转为横向并再次回到纵向,标题和其他所有内容将重新出现。

我不确定这是否已经存在于以前版本的iOS中,但我目前在iOS 8中看到它。

2 个答案:

答案 0 :(得分:4)

我有同样的问题,我的解决方法就是:

prefersStatusBarHidden 设置为YES的视图控制器中添加:

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

答案 1 :(得分:0)

我认为这是因为prefersStatusBarHidden是app wide设置,而不是每个视图控制器。

您可以通过添加推送的视图控制器ViewWillDisappear方法来解决这个问题

- (void)viewWillDisappear:(BOOL)animated {
[UIApplication sharedApplication].statusBarHidden = NO;
}