swift3 - Swift 3 中删除了 preferredStatusBarStyle 吗?

标签 swift3 xcode8 xcode8-beta4

所以我最近刚刚更新到 Xcode 8,我刚刚收到以下代码的错误。

错误在于该方法不会覆盖其父类(super class)中的任何方法。

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

enter image description here

我真的很感激帮助,谢谢!

最佳答案

在 iOS 10 中, preferredStatusBarStyle 是一个属性,而不是一个方法。所以不要用 func 覆盖它正如你所做的那样,你用 var 覆盖了 getter宣言:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Swift 编译器在这里的错误消息可能会更好——因为它似乎知道你的覆盖 func 应该覆盖一个属性,它可能会提供它作为修复它。我推荐 filing a bug to Swift open source .

注意:在 iOS 12 中,您可能还需要设置 UIViewControllerBasedStatusBarAppearance (又名“查看基于 Controller 的状态栏外观”)标志在您的 Info.plist 中。并检查您的 View Controller 层次结构,因为导航和拆分 View 等容器 View Controller 可能不会从其子级传播此信息。

关于swift3 - Swift 3 中删除了 preferredStatusBarStyle 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862208/

相关文章:

Swift错误编译错误: default label can only appear in switch statement

ios - 返回上一个应用程序(Swift ios)

ios - 在 ScrollView 中更改 UIView 同时/更新 ScrollView 高度 - Swift 3/Xcode 8

ios - 无法调用非函数类型的值(声明为 var)

ios - 在 iOS 中访问 Magento Rest API - swift 3.0

iphone - 检测最新的苹果设备 Xs、X(R)

ios - 无法在 Swift 3 中使用闭包语法

ios - 在自定义 View 的 Controller 中创建自定义 IBAction

ios - 密码更改 Parse swift