- iOS 9后
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
的方式已經被蘋果公司給淘汰,再次使用時會發生警告,再者該方法僅僅使用與某一控制器的狀態欄。 - 對于多控制器的應用來說一個個頁面設置太麻煩,所以我選擇了一種非常簡潔的方法,只需修改兩處配置,更改全局狀態欄顏色。
- PS:該方法有局限性,只能修改為白色或者黑色。
第一步,修改Info.plist文件:
- 工程的Info.plist文件中默認是沒有
View controller-based status..
這一項的,需要手動添加; - 添加后修改其vlaue值為
NO
。
設置info.plist.png
第二步,修改工程默認的狀態欄樣式:
- 默認(default)為黑色
-
(第一種方式)light 為白色
設置類型.png
-(第二種方式)或者再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
屏幕快照 2017-01-14 下午12.56.49.png
2.在控制器中重寫- (UIStatusBarStyle)preferredStatusBarStyle
方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
// 返回你所需要的狀態欄樣式
return UIStatusBarStyleLightContent;
}
簡單吧,如果需要自定義顏色好像可以定義同意的navigationBar。