1.iOS7之前采用的方法
UIApplication對象設置(需要更改plist文件中View controller-based status bar appearance選項設置為NO,默認為YES)
第一步就是取plist中把這個選項改成NO,我知道這一大串東西根本記不住!找到Supporting Files->info.plist,右鍵后選Add Row 就會出現第二個頁面,它會提供很多屬性,一直往下,最后一個就是View controller-based status bar appearance,這樣就不用記這個東西了。
當然改完這個后,你會發現并沒有什么卵用。還需設置UIApplication對象,具體代碼如下:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//設置狀態欄字體為白色[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];//設置狀態欄字體為黑色
2.iOS7以后采用的方法
在試圖控制器中重寫- (UIStatusBarStyle)preferredStatusBarStyle方法。該方法返回是一個UIStatusBarStyle,只要重寫該方法,當前視圖控制器的狀態欄顏色就會改變,例如模態視圖。
這個方法看似簡單,但是要想在導航控制器中使用,還是要注意很多細節。因為很多APP的中都是有導航欄的,這也是導航欄跟狀態欄一起講解的原因。
先簡單介紹一下UINavigationController,剛接觸這個的時候,都是大概能懂,大概能用,真的要融會貫通還是有很大的難度。
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
3.設置導航欄的背景顏色來改變
前兩種方法是可以不通過導航欄來設置狀態欄字體顏色。這里介紹的這個方法也是簡單粗暴,同樣是在同一個UINavigationController中,
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBar.hidden = YES;
self.navigationController.navigationBar.barStyle = UIStatusBarStyleLightContent;
}