2014-10-30 63 views
0

我有一個tabBarApp變化的狀態欄顏色iOS8上 - 的Xcode 6.1

1個選項卡是一個NavigationController和包括狀態欄

2是一個簡單的viewCOntroller其中我添加了一個NavigationBar(它包括狀態欄)

3選項卡中沒有一個狀態欄

我改變了我的的plist文件viewControllerBasedStatusBarAppearenceYES,因爲我需要每個標籤有不同的處理與狀態欄(第1和第2標籤必須有它,但第三必須是隱藏的)

我寫這前兩個控制器內部...

override funct preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent } 

override func prefersStatusBarHidden() -> Bool { return false } 

,我寫了這第三控制器

override func prefersStatusBarHidden() -> Bool { return true } 

內,但它不工作。第三個控制器沒有我期待的狀態欄。 第一控制器具有相同的顏色我的導航欄 ,但第二控制器沒有得到導航欄顏色的狀態欄(可能會導致它不是一個導航控制器,而只是一個導航欄)

憑什麼我將酒吧的顏色設置爲我想要的顏色,但沒有從NavBarController中獲得顏色? 以及如何將狀態欄中的項目(圖標...)設置爲白色而不是黑色? (導航欄文本是白色的)

+0

當我想改變狀態欄我放在appDelegate的applicationDidFinishLaunchingWithOptions [self.window setBackgroundColor:[UIColor whiteColor]]; – LanternMike 2014-10-31 05:13:09

回答

0

如果你想改變狀態欄中的內容的顏色(不使用UIViewController/UINavigation Controller自動填充)(所以你的2視圖控制器),你可以使用setStatusBarStyle(_ UIApplication上的statusBarStyle:UIStatusBarStyle,animated animated:Bool)。所以,放置在viewWillAppear中以下(或者是任何一個有意義/效果最好)在2視圖控制器:

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightConte​nt, animated: false) 

文檔: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/occ/instm/UIApplication/setStatusBarStyle:animated

0
setStatusBarStyle 

現在已經過時,在iOS中9和電流改變狀態欄樣式的方法是:

override func preferredStatusBarStyle() -> UIStatusBarStyle { 
    return UIStatusBarStyle.Default 
} 

更改.Default.LightContent