UIViewController的扩展不起作用更改Swift中的UIStatusBarStyle

UIViewController的扩展不起作用更改Swift中的UIStatusBarStyle,swift,statusbar,reusability,Swift,Statusbar,Reusability,我正在尝试为UIViewController创建扩展,但它不起作用。我正在更改状态栏颜色以使用扩展,但我无法获得成功。但没有扩展,这是可行的。我是新来的,请帮帮我。 我的目标是我不想在每个视图控制器上创建函数,减少重用性 创建扩展不起作用 extension UIViewController { func preferredStatusBarStyle_change() -> UIStatusBarStyle { return UIStatusBarStyle.

我正在尝试为UIViewController创建扩展,但它不起作用。我正在更改状态栏颜色以使用扩展,但我无法获得成功。但没有扩展,这是可行的。我是新来的,请帮帮我。 我的目标是我不想在每个视图控制器上创建函数,减少重用性 创建扩展不起作用

extension UIViewController {

     func preferredStatusBarStyle_change() -> UIStatusBarStyle {
        return UIStatusBarStyle.LightContent
    }
}
//!!!!!!!!!view1
override func viewDidLoad() {
        super.viewDidLoad()
        //preferredStatusBarStyle();
        self.preferredStatusBarStyle_change();
    }
//!!!!!!!!!view2
override func viewDidLoad() {
        super.viewDidLoad()
        //preferredStatusBarStyle();
        self.preferredStatusBarStyle_change();
    }
View1
override func viewDidLoad() {
                super.viewDidLoad()
                preferredStatusBarStyle();
            }
override func preferredStatusBarStyle() -> UIStatusBarStyle {
            return UIStatusBarStyle.LightContent
        } 
View2

     override func viewDidLoad() {
                super.viewDidLoad()
                preferredStatusBarStyle();
            }

         override func preferredStatusBarStyle() -> UIStatusBarStyle {
                return UIStatusBarStyle.LightContent
            } 
无扩展正在工作

extension UIViewController {

     func preferredStatusBarStyle_change() -> UIStatusBarStyle {
        return UIStatusBarStyle.LightContent
    }
}
//!!!!!!!!!view1
override func viewDidLoad() {
        super.viewDidLoad()
        //preferredStatusBarStyle();
        self.preferredStatusBarStyle_change();
    }
//!!!!!!!!!view2
override func viewDidLoad() {
        super.viewDidLoad()
        //preferredStatusBarStyle();
        self.preferredStatusBarStyle_change();
    }
View1
override func viewDidLoad() {
                super.viewDidLoad()
                preferredStatusBarStyle();
            }
override func preferredStatusBarStyle() -> UIStatusBarStyle {
            return UIStatusBarStyle.LightContent
        } 
View2

     override func viewDidLoad() {
                super.viewDidLoad()
                preferredStatusBarStyle();
            }

         override func preferredStatusBarStyle() -> UIStatusBarStyle {
                return UIStatusBarStyle.LightContent
            } 

请帮助我了解可重用性和扩展性,因为:

Viewcontroller将调用
preferredStatusBarStyle()
以定义关于
statusbar
。实际上,您删除了
preferredStatusBarStyle()
viewDidload
中,控制器仍然工作

因此,在您的情况下,您可以这样解决:

您创建了
UIViewController
的子类,它的名称可能是:
BaseViewController
,您将它放在这个类中:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
     return UIStatusBarStyle.LightContent
} 
现在,您从
BaseViewController
状态栏继承的所有
ViewController
都将始终
。LightContent
您不需要将此代码放在每个位置之上


演示:

请给我任何链接,它可以帮助我如何创建子类以及如何在主视图控件中继承Please@user3899589这很简单。我会给你一个演示。@user3899589检查我的演示我找到了这个文件“addcontaint.m”,我想这个文件名中的示例链接在哪里。你可能在说这个链接吗?@user3899589这个文件呢?这是我的一些剪贴集,我为我的方便创建的要点文件。