【问题标题】:Modally presented UIViewController hides status bar, but doesn't show it again on dismiss模态呈现的 UIViewController 隐藏状态栏,但在关闭时不再显示
【发布时间】:2015-06-26 18:43:48
【问题描述】:

所以我有一个视图控制器modalVC,我正在从情节提要中实例化它并通过[self presentViewController:modalVC animated:YES completion:nil] 以模态方式呈现。

问题是当模态视图显示时,状态栏隐藏(我实际上想要,即使我没有明确指示这样做),但是当模态控制器被解除时(通过@987654323 @),状态栏仍处于隐藏状态

我重申,据我所知,我没有做出任何明确的命令来隐藏状态栏。我的视图控制器都没有覆盖prefersStatusBarHidden,我也没有在任何地方调用setStatusBarHidden。我认为这只是默认的模态演示。

但是为什么我的状态栏没有重新出现?

【问题讨论】:

  • 你有没有尝试展示另一个?状态栏也会消失吗?还是仅针对此特定视图发生?
  • 我可以尝试另一个,但这是一个非常简单的视图。它由一个工具栏和另一个容器视图(我什至还没有填充)组成。
  • 您是否将模式视图的 WantsFullScreenLayout 设置为 YES ?
  • 不,我没有在任何地方设置wantsFullScreenLayout,尽管它是全屏视图。

标签: ios objective-c uiviewcontroller modalviewcontroller


【解决方案1】:

使用关闭模式 dismissViewControllerAnimated:YES, 并调用

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

之前

dismissViewControllerAnimated:YES

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

【讨论】:

    【解决方案2】:

    我很傻。原来我在模态视图出现时设置了statusBarHidden = YES

    避免了危机!

    【讨论】:

      【解决方案3】:

      对于其他可能会在这里把头撞到墙上几个小时,试图弄清楚为什么他们的状态栏被隐藏的人,请记住 if @987654322 @ 返回一个无效的方向,在 iPhone X 设备上对你的状态栏再见

      在我们的例子中,supportedInterfaceOrientations 返回 0(即 not a valid UIInterfaceOrientationMask orientation),但没有任何错误。唯一的副作用是在我们以模态方式呈现另一个视图控制器后状态栏被隐藏了。

      我希望能救人。

      【讨论】:

        猜你喜欢
        • 2017-12-21
        • 2014-02-07
        • 2014-10-14
        • 2014-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多