第一步,infoPlist里面加一个这个
image第二步,navigationController,和tabBarController 加上几行代码
/// UINavigationController
override var childForStatusBarStyle: UIViewController?{
return self.topViewController
}
override var childForStatusBarHidden: UIViewController?{
return self.topViewController
}
/// UITabBarController
override var childForStatusBarStyle: UIViewController?{
return self.selectedViewController
}
override var childForStatusBarHidden: UIViewController?{
return self.selectedViewController
}
第三步, 该怎么设置就怎么设置吧, 没啥好说的了。。。
/// In Controller
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var prefersStatusBarHidden: Bool {
return false
}
如果应用的第一页面就需要修改状态栏样式,建议在 Deployment Info -> Status Bar Style 中预先设置好,以免开启应用时有过渡的效果。
image.png⚠️ 当你present一个VC的时候,被present的VC的preferredStatusBarStyle不会工作,你必须在present前设置:
vc.modalPresentationCapturesStatusBarAppearance = true
网友评论