У меня возникла проблема с загрузкой содержимого таблицы в UITableViewController
. Я создал UITableViewController
без xib. В loadView
Я вызываю функцию, которая генерирует массив данных для отображения. И из этого массива в tableView:cellForRowAtIndexPath:
Я пытаюсь загрузить ячейки. Но почему-то я ничего не получаю на столе. Кроме того, когда я устанавливаю точку останова для вызова, он, похоже, не вызван. Может ли кто-нибудь сказать, что я делаю неправильно здесь?когда делает -tableView: cellForRowAtIndexPath: вызывается?
ответ
Вызывается, и строки для вашего табличного представления, так как по умолчанию они будут 0.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [yourArray count];
}
Я предполагаю, что мой массив пуст при вызове numberOfRowsInSection. Как я могу построить свой массив до того, как будет вызвано количество строк? – slonkar
Вам не нужно. Просто вызовите '[self.tableView reloadData];' когда массив готов. –
cellforrowatindexpath вызывается при построении таблицы. Установили ли вы делегат таблицы? Вы добавили в свой .h?
Это источник данных, который необходимо установить. Делегат отвечает за выбор строки, а не показывается. – Eimantas
my .h - это что-то вроде этого classname: UITableViewController {} – slonkar
Если вы создали подкласс 'UITableViewController', они делегируют и dataSource уже настроены правильно, просто убедитесь, что вы возвращаете правильное количество разделов и строк и называете' [self.tbleView reloadData]; 'при обновлении источника данных (добавить/удалить/изменить объекты в массиве). –
как сказал Eimantas, вы должны установить «DataSource» делегат вашего UITableView = (указывая на) YourClass с Tableview: метод cellForRowAtIndexPath ...
это метод вызывается всякий раз, новая ячейка (в первый раз, когда вы видите свою таблицу, он создает необходимое количество ячеек для покрытия всей высоты вашей таблицы), тогда он вызывается, когда пользователь просматривает таблицу (не создавать новые ячейки, а повторно использовать старые ячейки с необходимы новые данные)
- 1. tableView (: cellForRowAtIndexPath :) Не вызывается
- 2. TableView cellForRowAtIndexPath никогда не вызывается (iOS, Swift)
- 3. cellForRowAtIndexPath: не вызывается reloaddata
- 4. CellForRowAtIndexPath не вызывается
- 5. Почему cellForRowAtIndexPath вызывается, когда ячейка не видна?
- 6. , когда это называется: - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
- 7. Что вызывает tableView: cellForRowAtIndexPath
- 8. cellForRowAtIndexPath не вызывается после reloadData
- 9. Target автоматически вызывается в cellForRowAtIndexPath
- 10. cellForRowAtIndexPath вызывается, но без stacktrace
- 11. tableView reloadData cellForRowAtIndexPath не называется
- 12. iOS UITableView cellForRowAtIndexPath не вызывается
- 13. tableView: cellForRowAtIndexPath: method question
- 14. tableview: cellForRowAtIndexPath не называется
- 15. Tableview cellForRowAtIndexPath вызова позже
- 16. CellForRowAtIndexPath вызывается перед запуском ViewWillAppear
- 17. cellForRowAtIndexPath: вызывается, но ничего не отображается в tableview
- 18. функция - TableView: cellForRowAtIndexPath не вызывался
- 19. переключатель внутри Tableview cellForRowAtIndexPath
- 20. tableView (cellForRowAtIndexPath) vs. tableView.cellForRowAtIndexPath()?
- 21. UITableView cellForRowAtIndexPath иногда не вызывается?
- 22. Вызывается ли cellForRowAtIndexPath при использовании пользовательской ячейки?
- 23. tableview: cellForRowAtIndexPath никогда не назывался
- 24. Получить tableView: heightForRowAtIndexPath: произойти после tableView: cellForRowAtIndexPath :?
- 25. cellForRowAtIndexPath не вызывается, но numberOfRowsInSection называется
- 26. cellForRowAtIndexPath никогда не вызывается, но numberOfRowsInSection
- 27. Swift: cellForRowAtIndexPath не вызывается в порядке indexPaths
- 28. Метод cellForRowAtIndexpath не вызывается, когда я быстро прокручиваю таблицу
- 29. UITableViewController падает в tableView: cellForRowAtIndexPath:
- 30. iOS: cellForRowAtIndexPath не вызывается сразу после numberOfRowsInSection
Помогла бы небольшой код из метода 'loadView'. Кроме этого - после создания этого представления попробуйте вызвать 'reloadData' на вашей таблице. – Eimantas
Вы возвращаете правильные значения из методов 'numberOfSectionsInTableView' и' numberOfRowsInSection: 'вашего делегата tableView? – jonkroll
нет его нет. Я получаю 0 для количества строк. – slonkar