ios - UIStatusBarStyle 不适用于 Swift

标签 ios swift appdelegate uistatusbar xcode6

我试图将我的 Swift 应用程序中的状态栏颜色更改为白色,但遇到了障碍。我有 3 个 ViewControllers,每个都嵌入在 NavigationController 中(这可能是问题所在吗?我已经尝试将代码放在 NavigationController 类中。)我已经在我的 AppDelegate 的 didFinishLaunchingWithOptions 中尝试了以下两段代码.swift 文件,但均无效。

application.statusBarStyle = .LightContent

UIApplication.sharedApplication().statusBarStyle = .LightContent

所有文档不得不说的是 UIBarButtonStyle 是一个 Int 并给了我这个枚举片段,它对我的​​实现完全没有帮助。

enum UIStatusBarStyle : Int {
    case Default
    case LightContent
    case BlackOpaque
}

我错过了什么?

最佳答案

你有两个选择。

如果您想继续手动设置状态栏的样式,请继续您正在做的事情,但您需要将以下键添加到您的 info.plist 文件中,值为 NO.

View controller-based status bar appearance

或者,如果您想继续使用基于 View Controller 的状态栏外观,而不是设置应用程序的 statusBarStyle,请在您要为其指定的每个 View Controller 中覆盖 preferredStatusBarStyle 属性状态栏样式。

swift 3

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

swift 2

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

关于ios - UIStatusBarStyle 不适用于 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235401/

相关文章:

ios - 通过 iOS App 发送 Facebook 好友请求

ios - 如何在不浪费应用程序委托(delegate)时间的情况下停止/开始游戏?

ios - 快速入口点

c++ - Cocos2dx 2.2.3 架构 arm64::WebPInitDecoderConfigInternal 的 undefined symbol

ios - Json转换问题 : invalid characters found

c++ - Xcode9 领域错误 - 没有可行的重载 ‘=’

ios - 从 iOS 向 Bluno 发送数据

swift - Metal/Metal 2 + swift : How to pass complex Swift structure as shader argument?

ios - 如何在 sprite kit 中处理多任务

ios - 容器 View 中的 UIView 未显示