iOS statusBar 字体设置为白色 苹果状态栏字体
第一种 技巧
随着苹果api的更新就会出一个 警告
Setter for statusBarStyle was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
经查询 使用 [UIViewController preferredStatusBarStyle] 更合理,每个页面都可以方便的修改 statusBar 的颜色
第二种 技巧
一般在创建工程之初都会自定义一个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 技巧即可。
后记: 在一次修改老项目 经过中就遇到了viewController中preferredStatusBarStyle 技巧不执行的情况,网上有两种说法: 1、需要隐藏 体系导航条; 2、没有隐藏的需要使用self.navigationController.navigationBar.barStyle方式修改。
各种都尝试了就是不行, 最后发现和根视图中的childForStatusBarStyle 技巧有关,在这个 技巧返回你正在显示的viewController,preferredStatusBarStyle这个 技巧就开始执行了。
如果根视图是tab,那就返回self.select;如果根视图是nav,那就返回self.top,根据实际情况而定。