iphoneX不能调用preferredsStatusBarHidden

los*_*eam 5 uistatusbar swift iphone-x

info.plist

<key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>
Run Code Online (Sandbox Code Playgroud)

UIViewController

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

当我使用6p时,可以,但是
iphoneX不能调用,并且StatusBar不隐藏

Cla*_*aus 5

您需要检查您的视图控制器是否包含在容器中(即UINavigationController)。如果是这样,整个过程是这样的:

1)将info.plist文件中的View controller-based status bar appearance值设置为YES

2)在您的子控制器中添加以下代码:

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

3)添加此扩展名:

// gives control of the status bar appearance to the top controller
extension UINavigationController {
    override open var childViewControllerForStatusBarHidden: UIViewController? {
        return self.topViewController
    }
}
Run Code Online (Sandbox Code Playgroud)

您已经有了点1和2。相同的逻辑适用于UITabBarController