覆盖 TabBarController 中 ViewController 的类型?
Override type for ViewControllers in TabBarController?
我正在尝试覆盖 viewControllers 方式的类型。
override var viewControllers : [BaseViewController]? {
get {
return self.viewControllers
}
}
但是我得到这个错误。
Property 'viewControllers' with type '[BaseViewController]?' cannot override a property with type '[UIViewController]?'
这能做到吗?
您可以通过创建新的 属性 来解决它。比如这个。
var baseViewControllers: [BaseViewController]? {
return self.viewControllers as? [BaseViewController]
}
您不能覆盖已经属于 UIViewController 类型的属性类型。您可以做的是将 属性 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 {
}
}
}
我正在尝试覆盖 viewControllers 方式的类型。
override var viewControllers : [BaseViewController]? {
get {
return self.viewControllers
}
}
但是我得到这个错误。
Property 'viewControllers' with type '[BaseViewController]?' cannot override a property with type '[UIViewController]?'
这能做到吗?
您可以通过创建新的 属性 来解决它。比如这个。
var baseViewControllers: [BaseViewController]? {
return self.viewControllers as? [BaseViewController]
}
您不能覆盖已经属于 UIViewController 类型的属性类型。您可以做的是将 属性 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 {
}
}
}