ios - Swift 3.0中如何用代码控制Status Bar样式

标签 ios swift3

我使用代码:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}

然后我添加

<key>UIViewControllerBasedStatusBarAppearance</key><false/>

在 Info.plist 中。

但是StatusBar还是黑色风格!为什么?

最佳答案

SWIFT 3

UINavigationController 覆盖 View Controller 的首选状态栏样式。您可以通过子类化 UINavigationController 将控制权交还给 View Controller :

class BaseNavigationController: UINavigationController {

var statusBarStyle: UIStatusBarStyle?

override var preferredStatusBarStyle: UIStatusBarStyle {
    return statusBarStyle ?? .default
}

然后您可以在 View Controller 中设置 statusBarStyle 属性:

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

    if let navigationController = navigationController as? BaseNavigationController {
        navigationController.statusBarStyle = preferredStatusBarStyle
    }
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .default // any style you want
}

关于ios - Swift 3.0中如何用代码控制Status Bar样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42695721/

相关文章:

php - 如何使用 p8 授权 key 文件通过 PHP 连接到 apn

ios - UrbanAirShip 集成在我的项目中。它在 Swift3 中运行不佳

ios - 所以我正在尝试制作一个快速应用程序来计算某些球队在球员投注时的乘数

swift - 二元运算符 '*' 不能应用于类型 'int' 和 'double 的操作数

ios - 向 UILabel 问题添加高度约束

ios - "Error Domain=NEVPNErrorDomain Code=1\"(null)\""连接 VPN 服务器时

ios - Facebook Audience Network 展示横幅广告

ios - 如何在 Swift3 中使用 View Controller 作为侧边菜单

ios - Swift 3 - 动画序列停止时执行Segue

ios - 在 swift 中使用 tableview 搜索 Controller 滚动