我正在执行重构,因为我的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
属于表视图控制器,如何从我的数据源类访问它?如果不属于表视图控制器,它在哪里,为什么?
谢谢!
最佳答案
首先想到的是-我只是在打字,而不是用Xcode编写...
// footerButtonTap
if let ds = tableView.dataSource as? MyDataSource {
ds.showMore = !ds.showMore
tableView.reloadData()
}
或者遵循这些原则的东西可能符合您的需求。