【问题标题】:prefersStatusBarHidden issue in iOS 13iOS 13 中的 prefersStatusBarHidden 问题
【发布时间】:2020-05-01 03:33:13
【问题描述】:

大家好,我正试图将我的 statusBar 隐藏在 View Controller 中,但它似乎不起作用.. 我使用了该功能:


 override var prefersStatusBarHidden: Bool {
         return true
    }

我还将plist文件中的View controller-based status bar appearance设置为YES

我的状态栏不想隐藏...我哪里做错了?

【问题讨论】:

  • View controller-based status bar appearanceNOInfo.plist。您可以检查状态栏的设置here
  • 试试这个:(UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow)?.isHidden = false
  • 崩溃并出现此错误 UIApplication: 此代码必须更改,因为不再有状态栏或状态栏窗口。在窗口场景中使用 statusBarManager 对象。'
  • @kAiN 你检查我的答案了吗?我现在已经用Status bar is initially hidden 作为YESView controller-based status bar appearance 作为NOplist 中的空项目进行了测试,没有添加任何代码 - 状态栏在 iOS13.3 和 iPhone11 上是隐藏的
  • @VadimNikolaev 是的,我知道,但我需要我的状态栏不仅在特定的视图控制器中可见

标签: ios swift uiviewcontroller statusbar


【解决方案1】:

您似乎正试图在单个ViewController 中专门隐藏状态栏。

为了做到这一点,你需要在ViewController中拥有以下内容

self.modalPresentationCapturesStatusBarAppearance = true

override var prefersStatusBarHidden: Bool {
      return false
}

我还在我的.plist 中添加了View controller-based status bar appearance 并将其设置为YES

在最新的 iOS 13 上测试。

【讨论】:

  • 它对我有用。但是在 iOS 14 上,我不需要设置 self.modalPresentationCapturesStatusBarAppearance = true ,它也很好用。
【解决方案2】:

如果目标视图控制器嵌入在另一个容器视图控制器中,例如 UINavigationController,您需要继承该容器视图控制器并覆盖其 childForStatusBarHidden 以返回目标视图控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2019-12-12
    • 2020-01-23
    • 1970-01-01
    • 2020-01-29
    • 2020-04-17
    • 2020-05-12
    相关资源
    最近更新 更多