preferredStatusBarStyle

preferredStatusBarStyle

我想在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/

10-11 08:31