我正在做一個重構,因爲我的UITableViewController
膨脹得很厲害。我想要做的第一件事就是重構數據源出這樣的表視圖控制器:在UITableViewDataSource類中使用UITableViewController邏輯
// In my UITableViewController
let ds = MyDataSource()
func viewDidLoad() {
tableView.dataSource = ds
}
在我的數據源類,我想用一些邏輯,我覺得在表中應該屬於視圖控制器。
class MyDataSource: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
// I want to use the variable showMore here
return showMore ? 2 : 1
}
// More data source doe
}
可變showMore
是在我的表視圖控制器定義的布爾變量,並且通過在一個段的頁腳視圖按鈕更新。
問題是,如果showMore
屬於表視圖控制器,我如何從我的數據源類訪問它?如果它不屬於 表視圖控制器,它屬於哪裏,爲什麼?
謝謝!
將屬性showMore添加到VC和DS中。只要它在VC中發生變化,就將其傳遞給DS,然後重新載入您的表格。或者只保留在DS中,當用戶按下按鈕時,告訴DS更新值並重新加載表格。 – Koen