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