解决方法对应的版本是swift4.2
刚开始,查阅资料,说需要重写preferredStatusBarStyle方法,但是,没卵用,后来又多发查找,发现需要重写navbar中的方法,也是醉了,具体步骤如下:
一:找到项目targets的info.plist文件,将 View controller-based status bar appearance 设置为 NO
二:新建一个继承自UINavigationController的navbar,重写 childForStatusBarHidden 和 childForStatusBarStyle 方法
// 重写这两个方法
override var childForStatusBarHidden: UIViewController? {
return self.topViewController
}
override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
三、在需要改变状态栏字体颜色的控制器中重写 preferredStatusBarStyle 方法
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}