標籤:狀態列 顏色 ios
看到網上都說 在ios7之後要這樣設定
首先,需要在Info.plist設定檔中,增加鍵:UIViewControllerBasedStatusBarAppearance,並設定為YES;
然後,在UIViewController子類中實現以下兩個方法:
- (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent;}- (BOOL)prefersStatusBarHidden{ return NO;}最後,在需要重新整理狀態列樣式的時候,調用[self setNeedsStatusBarAppearanceUpdate]方法即可重新整理注意:
[self setNeedsStatusBarAppearanceUpdate]在push 或者 present 的controller裡面調用才起作用。
奇怪的是 我這樣設定之後 只有在登入介面有用 介面登入跳轉之後(正確的說 應該是還沒跳轉的時候 網路請求資料之後 狀態列的顏色就變為黑色了,並且在下個介面怎麼設定都沒用、也許是因為我登入介面是present過去或者什麼原因吧,先不討論這個)顏色就變回去了,不知道是這個方法有問題,還是我代碼有問題。
然後我找了一個在我的工程中可用的。略微修改,因為我剛進介面會有張全屏圖。
調用setStatusBarStyle 任何iOS版本可用plist檔案中
代碼中
if (IsIOS7Later) { [[UIApplication sharedApplication] setStatusBarHidden:NO]; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; }
而且 我還發現 ios6.0下,登入的介面沒有狀態列了。。(登入介面不是navg)只好
if (!IsIOS7Later) {
[UIApplicationsharedApplication].statusBarHidden =NO;
}
。。。
哎 具體為什麼
- (UIStatusBarStyle)preferredStatusBarStyle
這個方法在另外一個介面就不行了 還是以後再研究吧 估計是我代碼問題。
關於在ios7之後改變狀態列顏色