【问题标题】:Change statusBar Color ios8 - Xcode 6.1更改状态栏颜色 ios 8 - Xcode 6.1
【发布时间】:2014-10-30 19:37:23
【问题描述】:

我有一个tabBarApp

第一个标签是NavigationController 并包括状态栏

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

3 标签没有状态栏

我将 Plist 文件更改为 viewControllerBasedStatusBarAppearenceYES 因为我需要每个选项卡对状态栏进行不同的处理(第一个和第二个选项卡必须有它,但第三个必须隐藏)

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

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

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

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

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

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

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

【问题讨论】:

  • 当我想更改状态栏时,我放入了 appDelegate 的 applicationDidFinishLaunchingWithOptions [self.window setBackgroundColor: [UIColor whiteColor]];

标签: ios objective-c swift uiappearance


【解决方案1】:

如果你想改变状态栏中内容的颜色(不使用 UIViewController/UINavigation Controller 自动的东西)(所以你的 2 视图控制器)你可以使用 setStatusBarStyle(_ statusBarStyle: UIStatusBarStyle, animated animated: Bool ) 在 UIApplication 上。因此,将以下内容放在您的 2 视图控制器中的 viewWillAppear (或任何有意义/效果最好的地方):

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:

【讨论】:

    【解决方案2】:
    setStatusBarStyle
    

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

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

    .Default 更改为 .LightContent 以获取灯光

    【讨论】:

      猜你喜欢
      • 2016-11-04
      • 2018-08-27
      • 2021-08-03
      • 2016-10-16
      • 2015-10-09
      • 1970-01-01
      • 2020-01-16
      • 2020-02-04
      • 1970-01-01
      相关资源
      最近更新 更多