如果在导航栏下
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;//白色
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;//黑色
如果隐藏导航栏
1、在plist文件中添加一个属性 View controller-based status bar appearance 设置为 NO
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
2、View controller-based status bar appearence 设置为 YES
注意:如果 View controller-based status bar appearence 为 YES,则 [UIApplication sharedApplication].statusBarStyle 在工程里面设置是无效的。
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
或者重写 preferredStatusBarStyle 方法(修改单个页面)
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
动态修改状态栏颜色
1.设置一个全局的状态栏。
@property (nonatomic, assign) UIStatusBarStyle statusBarStyle;
- 实现preferredStatusBarStyle方法
- (UIStatusBarStyle)preferredStatusBarStyle {
return self.statusBarStyle;
}
3.设置更新状态栏字体颜色
self.statusBarStyle = UIStatusBarStyleLightContent;
// self.statusBarStyle = UIStatusBarStyleDefault;
[self setNeedsStatusBarAppearanceUpdate];
参考地址1:https://www.jianshu.com/p/b952f0e1f934
参考地址2:https://www.jianshu.com/p/fe2cae4eb072