[英]Override type for ViewControllers in TabBarController?
I'm trying to override type for viewControllers manner. 我试图覆盖viewControllers方式的类型。
override var viewControllers : [BaseViewController]? {
get {
return self.viewControllers
}
}
But I get this error. 但是我得到了这个错误。
Property 'viewControllers' with type '[BaseViewController]?' cannot override a property with type '[UIViewController]?'
Can this even be done? 甚至可以这样做吗?
You can workaround it by creating new property. 您可以通过创建新属性来解决此问题。 Like this for instance.
比如这样。
var baseViewControllers: [BaseViewController]? {
return self.viewControllers as? [BaseViewController]
}
You cannot override properties type which is already of type UIViewController. 您不能覆盖已经是UIViewController类型的属性类型。 What you can do is to cast the property viewControllers to [BaseViewController]?.
你可以做的是将属性viewControllers转换为[BaseViewController]?。
class base: UIViewController {
}
class tab: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let bases = viewControllers as? [base]
}
override var viewControllers: [UIViewController]? {
get {
return [base()]
}
set {
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.