模态显示的UIViewController隐藏状态栏,但在解除时不会再显示它

时间:2015-06-26 18:43:49

标签: ios objective-c uiviewcontroller modalviewcontroller

所以我有一个视图控制器modalVC,我从故事板中实例化并通过[self presentViewController:modalVC animated:YES completion:nil]进行模态化。

问题在于,当显示模态视图时,状态栏正在隐藏(我实际上想要,即使我没有明确指示这样做),但是当模态控制器被解除时(通过[self dismissViewControllerAnimated:YES completion:nil]),状态栏保持隐藏状态

我重申,我不知道如何制作隐藏状态栏的明确命令。我的所有视图控制器都没有覆盖prefersStatusBarHidden,我无处调用setStatusBarHidden。我认为它只是默认的模态演示文稿。

但为什么我的状态栏不再出现?

3 个答案:

答案 0 :(得分:0)

取消使用模态 dismissViewControllerAnimated:YES, 并致电

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES]; 

之前

dismissViewControllerAnimated:YES

确保条形图绘制在正确的位置(当您在模态视图上将wantsFullScreenLayout设置为YES时可能会发生这种情况)

答案 1 :(得分:0)

我很蠢。事实证明,当模态视图出现时,我正在设置statusBarHidden = YES

危机避免了!

答案 2 :(得分:0)

对于可能会在这里将头撞在墙上的其他人,试图弄清楚隐藏其状态栏的原因,请记住如果 {{ 1}} 返回无效的方向,在iPhone X设备上向状态栏再见

在我们的情况下,supportedInterfaceOrientations返回0(即not a valid UIInterfaceOrientationMask orientation),但没有错误,也没有任何错误。唯一的副作用是,在我们以模态显示另一个视图控制器之后,状态栏被隐藏了。

我希望能救一个人。