iOS swift 设置状态栏样式

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
    }
}

你可能感兴趣的:(iOS swift 设置状态栏样式)