Проблема перезагрузки UITableView - PullRequest
1 голос
/ 17 мая 2009

У меня есть UITableView, который заполняется массивом, у меня есть кнопка на панели навигации, которая (при нажатии) добавляет элемент в массив и вызывает [self.tableView reloadData] в UITableView. Это приводит к тому, что numberOfRowsInSection вызывается и возвращает правильное количество строк (количество элементов в массиве), НО не вызывает cellForRowAtIndexPath. Я создал новое навигационное приложение, чтобы попытаться найти решение, но у меня точно такая же проблема! Если кто-нибудь знает ответ, он будет очень признателен, я рвал то, что осталось от моих волос в течение последнего дня! Я разместил исходный текст для тестового проекта на своем сайте по адресу www.sofaracing.com/Downloads/Test3.zip

.

Ответы [ 2 ]

2 голосов
/ 17 мая 2009

У меня работает! ;)

В MainWindow.xib Вы добавили объект Root View Controller (который не является частью Navigation Controller) - удалите его, не обязательно. Затем подключите выход refreshFriendsList к кнопке панели элемента NavigationItem в RootViewController. Ва-ля, магия!

Кстати: вам может понадобиться убрать предупреждение. И вы можете подумать о создании класса для вашей модели данных вместо использования UApplication sharedApplication.

1 голос
/ 17 мая 2009

Я быстро отладил ваше тестовое приложение. Я не мог определить основную причину, но кажется, что у вас есть два разных представления таблицы из-за некоторой путаницы в настройке Interface Builder.

Если вы инициализируете исходный массив элементом, cellForRowAtIndexPath вызывается правильно. Если вы изучите экземпляр self.tableView в этом вызове, а затем в последующих вызовах refreshFriendsList, self.tableView указывает на другой экземпляр.

2009-05-17 14:33:07.591 Test3[33580:20b] cellForRowAtIndexPath 0
2009-05-17 14:33:07.594 Test3[33580:20b] self.tableView: <UITableView: 0x52b9b0>
2009-05-17 14:42:36.810 Test3[33762:20b] numberOfRowsInSection: tableView <UITableView: 0x53bcd0> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...