UITableViewController
が非常にひどく鼓動しているため、私はリファクタリングを行っています。私がやろうとしている最初のものは、このようなテーブルビューコントローラのうち、データソースのリファクタリングされています。私のデータソースクラスでUITableViewControllerのロジックをUITableViewDataSourceクラスで使用する
// 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