iOS9以上设置状态栏颜色的方式有所改变,以下是详细步骤:
1、将info.plist中的View controller-based status bar appearance设置为YES
2、在所有改变状态栏颜色的UIViewController里重写以下属性
override var preferredStatusBarStyle: UIStatusBarStyle{
return .lightContent //白色字体
}
注意事项:如果需要改变状态栏样式的UIViewController 是UINavigationController的子Controller,那么以上方法并不会被调用而是调用UINavigationController里的方法。
解决方法:根据实际情况,写UINavigationController扩展或者继承一个子类,实现重写以下方法
extension UINavigationController {
open override var childViewControllerForStatusBarStyle: UIViewController? {
return viewControllers.last
}
}