I'm trying to override type for viewControllers manner.
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. What you can do is to cast the property viewControllers to [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 {
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.