无法为视图设置iOS状态栏颜色

无法为视图设置iOS状态栏颜色,ios,swift,xcode-storyboard,uistatusbar,Ios,Swift,Xcode Storyboard,Uistatusbar,我正在使用Swift 1.2为iOS8开发一个应用程序 但是,我对状态栏的颜色有问题(时间、电池指示灯等) 在我的Info.plist文件中,我将UIViewControllerBasedStatusBarAppearance设置为YES,并将状态栏样式设置为UIStatusBarStyleLightContent,然后在故事板中的所有视图控制器中,我将状态栏设置为“Light Content” 这适用于我所有的NavigationViewController和嵌入NavigationView

我正在使用Swift 1.2为iOS8开发一个应用程序

但是,我对状态栏的颜色有问题(时间、电池指示灯等)

在我的
Info.plist
文件中,我将
UIViewControllerBasedStatusBarAppearance
设置为
YES
,并将
状态栏样式设置为
UIStatusBarStyleLightContent
,然后在故事板中的所有视图控制器中,我将状态栏设置为“Light Content”

这适用于我所有的
NavigationViewController
和嵌入
NavigationViewController
中的视图,但是我有一个正常的
TableViewController
,它没有嵌入
NavigationController
,当我以模式按下此视图时,状态栏变为黑色

即使当我在脚本编辑器中查看视图时,它也会显示为白色状态栏(请注意下面屏幕截图右侧微弱的白色电池指示灯):

但当我在iPhone上构建和运行时,状态栏显示为黑色


为什么会这样?我怎样才能解决这个问题?我不知道什么地方可能不正确。

请确保在您的Info.plist中添加
查看基于控制器的状态栏外观
(UIViewControllerBasedStatusBarAppearance),并使用值
NO
。请确保添加
查看基于控制器的状态栏外观
(UIViewControllerBasedStatusBarAppearance)将值
NO
添加到您的Info.plist

以下是
UIStatusBar
样式的设置:

  • 转到
    AppDelegate.swift
    ,在
    didfishlaunchingwithoptions
    方法中的代码行下方添加:

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
    
  • 将以下键添加到
    .plist
    文件中

  • 在情节提要中选择控制器
    UINavigationController
    UIViewController
    。并将状态栏样式设置为
    Light Content

  • 这些是
    UIStatusBar
    样式的设置:

  • 转到
    AppDelegate.swift
    ,在
    didfishlaunchingwithoptions
    方法中的代码行下方添加:

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
    
  • 将以下键添加到
    .plist
    文件中

  • 在情节提要中选择控制器
    UINavigationController
    UIViewController
    。并将状态栏样式设置为
    Light Content

  • 更新:

    从另一篇StackOverflow文章()中,我发现解决这个问题非常简单

    对于希望以编程方式设置状态栏颜色的任何其他人,我只是将以下代码插入到我的ViewController中,用于所讨论的视图:

    -Swift 4.0+ -早期雨燕(4.0-)
    更新:

    从另一篇StackOverflow文章()中,我发现解决这个问题非常简单

    对于希望以编程方式设置状态栏颜色的任何其他人,我只是将以下代码插入到我的ViewController中,用于所讨论的视图:

    -Swift 4.0+ -早期雨燕(4.0-)
    Appdelegate.swift
    文件中添加此行:

    UIApplication.sharedApplication().statusBarStyle = .LightContent
    

    Appdelegate.swift
    文件中添加此行:

    UIApplication.sharedApplication().statusBarStyle = .LightContent
    

    适用于Swift 3

    在函数中的
    AppDelegate.swift
    文件中
    didfishlaunchwithoptions

    UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
    

    适用于Swift 3

    在函数中的
    AppDelegate.swift
    文件中
    didfishlaunchwithoptions

    UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
    

    再添加一个键
    状态栏样式
    ->
    UIStatusBarStyleLightContent
    是的,你已经有了(对不起,问题中没有提到,但也已经有了)设法在另一篇文章中找到解决方案:再添加一个键
    状态栏样式
    UIStatusBarStyleLightContent
    是的,你已经有了(对不起,问题中没有提到,但已经有了)在另一篇帖子中找到了解决方案:我将其设置为“是”…为什么我要将其设置为“否”?当我以前将其设置为“否”时,我遇到了一个不同的问题,状态栏将为白色,但当我显示UIImagePicker,然后关闭picker时,从那时起,整个应用程序中的状态栏将始终为黑色(不正确…需要为白色)当您选择“是”时,每个控制器都可以使用自己的样式。当您将其设置为“否”时,将始终使用plist中的设置。我将其设置为“是”…为什么要将其设置为“否”?当我以前将其设置为“否”时,我遇到了一个不同的问题,状态栏将为白色,但当我将显示UIImagePicker,然后关闭picker时从那时起,整个应用程序中的状态栏将始终为黑色(这是不正确的…需要为白色)当您选择“是”时,每个控制器都可以使用自己的样式。当您将其设置为“否”时,将始终使用plist中的设置。在序列图像板中选择状态栏的选项实际上不再可能。在序列图像板中选择状态栏的选项实际上不再可能。