簡體   English   中英

在TabBarController中覆蓋ViewControllers的類型?

[英]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 {

    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM