iOS 8灯状态栏不起作用

时间:2015-05-01 17:38:59

标签: ios swift

我将视图控制器中主UIView的背景颜色设置为蓝色。

我也尝试了以下所有组合:

  • 将此添加到应用代理:

    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)

  • 将基于视图控制器状态的应用程序设置为NO和YES

  • 在项目概述中将“状态栏样式”设置为“浅色”。

当我想看到白色文字时,我看到黑色状态栏文字。

我想在应用程序级别设置样式,而不是VC级别。

我的信息.plist:

enter image description here

4 个答案:

答案 0 :(得分:10)

适用于IOS 9 +

在plist文件中,使用这两行添加/更改表格。

1)View controller-based status bar appearanceNO

2)Status bar styleUIStatusBarStyleLightContent

enter image description here

答案 1 :(得分:9)

状态栏样式(默认情况下)在视图控制器的级别确定,而不是应用程序。在视图控制器中实现preferredStatusBarStyle

class ViewController : UIViewController {
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }
}

可以确定应用程序级别的状态栏样式,但为此,您必须在 Info.plist 中添加一个开关。请参阅docs

  

要选择退出基于视图控制器的状态栏外观行为,您必须将值为NO的UIViewControllerBasedStatusBarAppearance键添加到应用的 Info.plist 文件中,但不建议这样做 [我的斜体,我甚至不知道这是否甚至更加支持]。

答案 2 :(得分:2)

快捷键4

Info.plist 中添加此属性

查看基于控制器的状态栏外观为否

然后在 didFinishLaunchingWithOptions 内的 AppDelegate 中添加这些代码

UIApplication.shared.isStatusBarHidden = false

UIApplication.shared.statusBarStyle = .lightContent

答案 3 :(得分:1)

您可以使用此代码

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

可能是解决此问题。