簡體   English   中英

如何將UIViewController傳遞給Swift中的另一個類?

[英]How to pass UIViewController to another class in Swift?

如何將UIViewController傳遞給Swift中的另一個類? 我有SomeViewController類:

class RidingViewController: UIViewController {
    fileprivate let header = RidingViewHeader(controller: self)

    override func viewDidLoad() {
        super.viewDidLoad()
        header.setNavigationBar()
    }
    ...
}

我想分離一些代碼,並在另一個類中設置其標頭。 我已經創建了這個課程

class RidingViewHeader {

    var controller: UIViewController
    let navigationBar= UINavigationBar()
    let navigationItem = UINavigationItem()

    init(controller: UIViewController) {
        self.controller = controller
    }
    ...
}

在這種情況下,我得到一個錯誤: Cannot convert value of type '(NSObject) -> () -> UIViewController' to expected argument type 'UIViewController'

有什么更好的方法呢?

在初始化視圖控制器之前,您無法訪問self 您可以將其設置為惰性變量:

fileprivate lazy var header: RidingViewHeader = {
    return RidingViewHeader(controller: self)
}()

暫無
暫無

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

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