- iOS 9后
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
的方式已经被苹果公司给淘汰,再次使用时会发生警告,再者该方法仅仅使用与某一控制器的状态栏。 - 对于多控制器的应用来说一个个页面设置太麻烦,所以我选择了一种非常简洁的方法,只需修改两处配置,更改全局状态栏颜色。
- PS:该方法有局限性,只能修改为白色或者黑色。
第一步,修改Info.plist文件:
- 工程的Info.plist文件中默认是没有
View controller-based status..
这一项的,需要手动添加; - 添加后修改其vlaue值为
NO
。
第二步,修改工程默认的状态栏样式:
- 默认(default)为黑色
-
(第一种方式)light 为白色
-(第二种方式)或者再AppDelegate.m中设置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 添加如下代码,改方法在iOS9之后被废弃,建议在控制器中重写`[UIViewController preferredStatusBarStyle]`方法。后面会介绍
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
return YES;
}
在各自控制器中设置状态栏颜色
1.首先还是的设置plist文件
- 如下图确保
View controller-based status bar appearance
该项为YES
2.在控制器中重写- (UIStatusBarStyle)preferredStatusBarStyle
方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
// 返回你所需要的状态栏样式
return UIStatusBarStyleLightContent;
}
简单吧,如果需要自定义颜色好像可以定义同意的navigationBar。