第一种方法
- 在 info.plist 中 View controller-based status bar appearance 设置为 NO
- UIApplication.shared.statusBarStyle = .lightContent
随着苹果api的更新就会出一个黄色警告
Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
经查询 使用 [UIViewController preferredStatusBarStyle] 更合理,每个页面都可以方便的修改 statusBar 的颜色
第二种方法
- 在 info.plist 中 View controller-based status bar appearance 设置为 YES
一般在创建工程之初都会自定义一个BaseNavigationViewController继承UINavigationController,也会创建一个BaseViewController继承UIViewController。
在BaseNavigationViewController中重写 childForStatusBarStyle 方法。
// BaseNavigationViewController 中的方法
override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
在BaseViewController中重写 preferredStatusBarStyle 方法。
// BaseNavigationViewController 中的方法
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
具体哪个页面设置什么颜色在BaseViewController的子类中重写 preferredStatusBarStyle 方法即可。
网友评论