无法在iOS 11,Swift 4中的特定视图控制器中隐藏状态栏

Wal*_*ter 2 statusbar ios uistatusbar swift

我有一个通用的UIViewController,我想在其中隐藏状态栏.我有更多的视图控制器应该显示状态栏,但是这个特定的视图控制器应该隐藏状态栏.

我在UIViewController类中实现了以下方法:

override func viewDidLoad() {
    super.viewDidLoad()
    // FIXME: hide status bar
    var prefersStatusBarHidden: Bool {
        return true
    }
    setNeedsStatusBarAppearanceUpdate()
}

override func viewWillAppear(_ animated: Bool) {
    UIApplication.shared.isStatusBarHidden = true
}

override func viewWillDisappear(_ animated: Bool) {
    UIApplication.shared.isStatusBarHidden = false
}
Run Code Online (Sandbox Code Playgroud)

在我的info.plist中,我设置了以下设置:

在此输入图像描述

当我导航到该视图控制器并且仍然可见时,状态栏不会隐藏.

Kru*_*nal 6

prefersStatusBarHidden在视图控制器中覆盖:

override var prefersStatusBarHidden: Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

设置一个值NoView Controller based status bar appearance,然后显示/隐藏特定视图控制器的状态栏.

在此输入图像描述

结果如下:

在此输入图像描述