Количество секций в табличном представлении не совпадает с тем, что я установил
Код очень прост, класс клиента, ChecklistViewController, унаследован от UITableViewController. Исходный код Swift подключен к tableViewController в раскадровке с ячейкой прототипа по умолчанию без изменений.
class ChecklistViewController: UITableViewController {
override func numberOfSections(in tableView: UITableView) -> Int {
return 10 // I set 10 sections here
}
override func viewDidAppear(_ animated: Bool) {
let tableView = UITableView()
print("\(tableView.numberOfSections)")// prints out "1" ???
}
}
Проблема:
Я попросил функцию источника данных создать 10 разделов для табличного представления, а позже сказал, что табличное представление имеет только 1 раздел в функции viewDidAppear. Разве это не должно распечатать 10? почему 1?
Спасибо за ваше время и помощь
1 ответ
Вы без необходимости создаете новую пустую таблицу без источника данных или делегата. Затем вы спрашиваете у этой ненужной таблицы, сколько у нее разделов. Поскольку у него нет источника данных, он возвращает значение по умолчанию 1 раздела.
Вместо создания дополнительного табличного представления, обратитесь к правильному табличному представлению, созданному контроллером табличного представления.
+ Изменить viewDidAppear
чтобы:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("\(self.tableView.numberOfSections)")
}
Теперь это получит доступ к реальному табличному представлению, которое создано контроллером табличного представления. Это должно дать правильный результат 10.
Обратите внимание, что self.
на самом деле не нужно. Я положил это здесь, чтобы прояснить, какие tableView
на него ссылаются.