更改状态Bar Color ios 8 - Xcode 6.1

时间:2014-10-30 19:37:23

标签: ios objective-c swift uiappearance

我有一个 tabBarApp

1标签是NavigationController并包含状态栏

2是一个简单的viewCOntroller我在其中添加了NavigationBar(包括状态栏)

3选项卡没有状态栏

我将 Plist 文件更改为viewControllerBasedStatusBarAppearenceYES,因为我需要每个标签对状态栏进行不同的处理(第1和第2个标签必须包含它) ,但第3个必须隐藏它)

我在前两个控制器中写了这个......

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

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

我在第三个控制器中写了这个

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

但它不起作用。第三个控制器没有我期望的状态栏。 第一个控制器的状态栏与导航栏的颜色相同 但是第二个控制器没有获得导航栏颜色(可能导致它不是导航控制器,而只是导航栏)

那么如何设置条形以获得我想要的颜色而不从NavBarController获取颜色? 如何将状态栏中的项目(图标...)设置为白色而不是黑色? (导航栏文字为白色)

2 个答案:

答案 0 :(得分:0)

如果你想改变状态栏中内容的颜色(不使用UIViewController / UINavigation Controller自动的东西)(所以你的2视图控制器)你可以使用setStatusBarStyle(_ statusBarStyle:UIStatusBarStyle,动画动画:Bool )关于UIApplication。因此,请将以下内容放在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

答案 1 :(得分:0)

setStatusBarStyle

现在在iOS 9中已弃用,目前更改状态栏样式的方法是:

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

将灯光{/ 1}}更改为.Default