info.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
UIViewController
override var prefersStatusBarHidden: Bool{
return true
}
when i use 6p ,it's ok
but
iphoneX ,it's can't call and StatusBar not hidden
You need to check if your view controller is included in a container (i.e. UINavigationController). If that is the case, the full procedure is this:
1) Set the View controller-based status bar appearance
value in info.plist file to YES
2) In your child controller add this code:
override var prefersStatusBarHidden: Bool{
return true
}
3) Add this extension:
// gives control of the status bar appearance to the top controller
extension UINavigationController {
override open var childViewControllerForStatusBarHidden: UIViewController? {
return self.topViewController
}
}
You already have point 1 and 2. Same logic applies to UITabBarController
来源:https://stackoverflow.com/questions/50714171/iphonex-not-call-prefersstatusbarhidden