所以我最近刚刚更新到 Xcode 8,我刚刚收到以下代码的错误。
错误在于该方法不会覆盖其父类(super class)中的任何方法。
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.lightContent
}
我真的很感激帮助,谢谢!
最佳答案
在 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/