改变状态栏的字体颜色

解决方法对应的版本是swift4.2

刚开始,查阅资料,说需要重写preferredStatusBarStyle方法,但是,没卵用,后来又多发查找,发现需要重写navbar中的方法,也是醉了,具体步骤如下:
一:找到项目targets的info.plist文件,将 View controller-based status bar appearance 设置为 NO
二:新建一个继承自UINavigationController的navbar,重写 childForStatusBarHiddenchildForStatusBarStyle 方法

// 重写这两个方法
override var childForStatusBarHidden: UIViewController? {
    return self.topViewController
}

override var childForStatusBarStyle: UIViewController? {
    return self.topViewController
}

三、在需要改变状态栏字体颜色的控制器中重写 preferredStatusBarStyle 方法

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

你可能感兴趣的:(改变状态栏的字体颜色)