我使用代码:
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.lightContent
}
然后我添加
<key>UIViewControllerBasedStatusBarAppearance</key><false/>
在 Info.plist 中。
但是StatusBar还是黑色风格!为什么?
最佳答案
SWIFT 3
UINavigationController 覆盖 View Controller 的首选状态栏样式。您可以通过子类化 UINavigationController 将控制权交还给 View Controller :
class BaseNavigationController: UINavigationController {
var statusBarStyle: UIStatusBarStyle?
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle ?? .default
}
然后您可以在 View Controller 中设置 statusBarStyle 属性:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let navigationController = navigationController as? BaseNavigationController {
navigationController.statusBarStyle = preferredStatusBarStyle
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .default // any style you want
}
关于ios - Swift 3.0中如何用代码控制Status Bar样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42695721/