ViewControllerBased,带有透明导航控制器的轻型内容状态栏

ViewControllerBased, Light content Status bar with Transparent Navigation Controller

在我的应用程序中,我想添加带有半透明、透明导航栏的浅色内容状态栏。但是,当我使导航栏透明时,它会使用黑色状态栏内容颜色进行自我调整。在我的例子中,导航控制器是强制性的,因为 table header 需要在普通模式下坚持使用它。我们将不胜感激。

我已使用此代码使我的导航栏透明。

self.navigationBar.translucent = true
self.navigationBar.shadowImage = UIImage()
self.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)

我尝试通过像

这样设置导航控制器的栏样式来使状态栏外观变亮
self.navigationController!.navigationBar.barStyle = .Black/.Default

但是,我仍然面临同样的问题

如果你想设置 完整应用程序

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        UIApplication.sharedApplication().statusBarStyle = .LightContent

        return true
    }

如果你只想更新视图控制器

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    UIApplication.sharedApplication().statusBarStyle = .LightContent

}

对于iOS9

设置为 完整应用程序

只需打开info.plist并将UIViewControllerBasedStatusBarAppearance设置为false

现在在 AppDelegate 的 didFinishLaunchingWithOptions 方法中更新


用于视图控制器

将基于视图控制器的状态栏外观设置为YES

在你的视图控制器中重写下面

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