2014-10-30 26 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