so I recently just updated to Xcode 8 and I just got this error for the following code.
The error is that the method doesn't override any method from it's superclasses.
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.lightContent
}
I would really appreciate help, thanks!
In iOS 10, preferredStatusBarStyle
is a property, not a method. So instead of overriding it with a func
declaration as you've done, you override the getter with a var
declaration:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
The Swift compiler's error message here could probably be better — since it seems to know your override func is supposed to cover a property, it could probably offer that as a fix-it. I'd recommend filing a bug to Swift open source.
Note: in iOS 12, you may also need to set the UIViewControllerBasedStatusBarAppearance
(aka "View controller-based status bar appearance") flag in your Info.plist. And check your view controller hierarchy, as container view controllers like navigation and split view might not propagate this from their children.