Прежде всего, извините, если это не отформатировано правильно, в первый раз, делая это. Я давно использую stackoverflow, чтобы найти помощь, и она мне очень помогла (спасибо всем), но я впервые опубликовал свой вопрос. Этот вопрос задавался много раз, но когда я вызываю [myTable reloadTable], вызываются методы numberOfSectionsInTableView и numberOfRowsInSection, но не cellForRowAtIndexPath.
Каждый ответ, который я видел при поиске, был вариацией:
1) TableView это ноль
2) numberOfRowsInSection равно 0
3) делегат / источник данных tableView не задан
4) вызов reloadTable для неверного uiTableView.
Ничто из этого не относится ко мне, поэтому мне интересно, что еще может быть не так.
Что я пытаюсь сделать:
У меня есть пользовательский uitableviewcell с кнопкой на нем, когда кнопка нажата, я хочу изменить атрибуты ячейки (например, скажем, я хочу изменить название ячейки на «Button Pressed»). Затем я хочу на минуту остановиться, а затем удалить ячейку.
Не уверен, что это важно, но мой tableView находится внутри UIViewController, а viewController - это делегат и источник данных.
У меня есть метод (ниже), который срабатывает при нажатии кнопки, и атрибуты ячейки меняются по мере необходимости, однако, когда я пытаюсь обновить таблицу, чтобы показать изменения, она не работает. При первом вызове [remTable reloadData] вызываются numberofsectionsintableview и numberofrowsinsection, но не cellforrowatindexpath. Однако при втором вызове [remTable reloadData] все три метода вызываются, и все работает правильно.
doneCell.remName.text=@"BUTTON PRESSED";
[remTable reloadData];
NSLog(@"sleep");
sleep(1);
[remList removeObject:doneReminder];
[remTable reloadData];
Чтобы проверить это, я поместил операторы nslog в начале numberofsections, numberofrows и cellforrow, вывод - это имя метода, за которым следует число (для numberofsections / numberofrows).
Выход:
numberofsections 1
numberofrows 3
sleep
numberofsections 1
numberofrows 2
cellforrow
Есть какие-нибудь идеи относительно того, почему cellforrow не вызывают в первый раз? Заранее спасибо, пожалуйста, дайте мне знать, если есть что-то еще, что я могу добавить, чтобы уточнить.