In my info.plist
,我有的文件View controller-based status bar appearance
set to YES
我有一个FirstViewController
状态栏隐藏的地方。
In my SecondViewController
I have
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var prefersStatusBarHidden: Bool {
return false
}
override func viewDidLoad() {
super.viewDidLoad()
setNeedsStatusBarAppearanceUpdate()
}
但是,状态栏显示出来,但是是黑色的。
我怎样才能让它正确更新?谢谢
Edit:
AppDelegate.swift
还有这个
UIApplication.shared.statusBarStyle = .lightContent
in didFinishLaunchingWithOptions
有一个房产位于Info.plist
文件名为查看基于控制器的状态栏外观。应设置为YES。
然后在你的 UIViewController 中你应该覆盖preferredStatusBarStyle
:
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
这里有一件需要注意的重要事情:如果您将视图控制器嵌入到 UINavigationController 中,并且您的视图控制器的preferredStatusBarStyle
方法没有被调用 - 您必须通过编写如下内容来解决它:
extension UINavigationController {
override open var preferredStatusBarStyle : UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
它所做的只是向顶部控制器询问其状态栏样式,并适当更新
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)