【问题标题】:iOS11 - Can't hide status bariOS11 - 无法隐藏状态栏
【发布时间】:2025-12-29 12:05:16
【问题描述】:

升级到iOS 11 / Xcode9后,状态栏不再隐藏。

我在 info.plist 中将“基于控制器的状态栏外观”设置为“YES”,并且:

override var prefersStatusBarHidden: Bool {
    return true
}

根据调试器,prefersStatusBarHidden调用,但没有任何效果。

这是一个错误吗?有谁知道解决办法吗?

【问题讨论】:

  • 你想隐藏应用中所有视图控制器的状态栏还是只隐藏在一个视图控制器中?
  • 调用 setNeedsStatusBarAppearanceUpdate()
  • 如果还是不行,请尝试 toVC.modalPresentationCapturesStatusBarAppearance = true
  • 嗯,这听起来像一个错误,我刚刚尝试过,它在我这边工作得很好。只需尝试仔细检查“基于视图控制器的状态栏外观”键是否拼写正确,其值为“YES”,然后尝试清理您的项目(CMD+SHIFT+K)并清理您的 DerivedData 文件夹,然后再次重新打开项目,看看它是否有效。

标签: swift statusbar ios11


【解决方案1】:

我使用STPopUpPreview 遇到了同样的事情。我必须在我的预览视图控制器上设置modalPresentationCapturesStatusBarAppearance = true。祝你好运!

【讨论】: