一. 设置全局控制器状态栏样式
1.取消控制器管理状态栏样式,在Supporting Files下的Info.plist添加一个属性设置
value: NO```
![image.png](http:https://img.haomeiwen.com/i1533163/ba52dbf85ed4be15.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.通过UIApplication来管理统一管理状态栏的样式,设置如下:
`UIApplication.shared.statusBarStyle = .lightContent`
####二. 设置局部控制器状态栏样式
新建项目默认通过局部控制器状态栏样式来管理,所以info.plist不需要做任何设置
1.如果只是`UIViewController`的话,只需要重写`preferredStatusBarStyle`方法
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
2.如果`UIViewController`存在`UINavigationController`,需要在自定义`NavigationController`中重写`preferredStatusBarStyle`方法
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
3.如果`UIViewController`存在`UINavigationController`,又想要通过`rootViewController`来控制`UIStatusBarStyle`,则需要在自定义`NavigationController`重写`childViewControllerForStatusBarStyle`方法
override var childViewControllerForStatusBarStyle: UIViewController?{
return self.topViewController
}
在`rootViewController`重写`preferredStatusBarStyle`方法
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
网友评论