我想在preferredStatusBarStyle
的扩展名中覆盖UIViewController
,如下所示:
extension UIViewController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
编译器抛出此错误
Getter for 'preferredStatusBarStyle' with Objective-C selector 'preferredStatusBarStyle' conflicts with method 'preferredStatusBarStyle()' with the same Objective-C selector
将相同的替代应用于
UINavigationController
而不是UIViewController
是可行的;但preferredStatusBarStyle是UIViewController继承的var。->为什么可以将此扩展名应用于
UINavigationController
但不能应用于UIViewController
最佳答案
您不能通过Swift中引入该属性的类的扩展来覆盖(重新声明实现)已经实现的属性。
您绝对应该创建一个UIViewController
子类,并在整个应用范围内使用它。
但是有一个选择。您可以使用Objective-C通过提供扩展类别来覆盖它,这类似于应用于此处回答的UIFont
的内容:Is there a way to change default font for your application。但是,这样做并不完全安全,如果不够谨慎,您应该期待独角兽的到来。
关于ios - 覆盖UIViewConrtoller扩展中的preferredStatusBarStyle,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42581694/