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.