iOS 8灯状态栏不起作用

max*_*hud 8 ios swift

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

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

  • 将此添加到应用程序委托:

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

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

  • 在项目概述中将"状态栏样式"设置为"浅".

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

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

我的info.plist:

在此输入图像描述

Pan*_*včí 13

适用于IOS 9+

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

1)View controller-based status bar appearanceNO

2)Status bar styleUIStatusBarStyleLightContent

在此输入图像描述


mat*_*att 9

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

class ViewController : UIViewController {
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }
}
Run Code Online (Sandbox Code Playgroud)

可以在应用程序级别确定状态栏样式,但为此,您必须在Info.plist中抛出一个开关.查看文档:

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

  • 作为旁注,这不适用于嵌入在`UINavigationController`或其他类容器中的视图控制器,因为该容器将覆盖其所有子视图控制器.给你的`UINavigationController`一个自定义类,并在该类中定义一个从第一个视图控制器获取`preferredStatusBarStyle`的方法,如下所示:`override func preferredStatusBarStyle() - > UIStatusBarStyle {return self.navigationController!.viewControllers .first.preferredStatusBarStyle()}` (4认同)