перезагрузка представления таблицы работает, просто прокручивая за пределы видимой области

обычно способом обновления tableView является вызов self.tableView reloadData (или setNeedsDisplay), но мой (видимый) tableView не перезагружается при вызове этого метода.

Мой контекст таков, что у меня есть панель навигации и TableView, и, нажав кнопку на панели навигации, запускается метод «aktualisieren». Этот метод также работает (я использую UIAlertView, чтобы проверить его). Но контекст просто обновляется, когда я прокручиваю TableView (после перезагрузки) в невидимой области (вверху или внизу). Затем перезагружаются только те ячейки, которые находились во внешней области. Почему? Кто-нибудь может мне помочь?

Большое спасибо,

Джонатан


person Jonathan    schedule 08.07.2010    source источник


Ответы (2)


Похоже, ваш IBOutlet может быть не подключен.

Убедитесь, что у вас есть IBOutlet типа UITableView в вашем контроллере представления и что он правильно подключен к таблице, которую вы хотите обновить в Interface Builder.

Если вы используете файл MyViewController.h, у вас должен быть

IBOutlet UITableView *myTableView;

@property(nonatomic, retain) UITableView *myTableView;

а в построителе интерфейса перетащите, удерживая нажатой клавишу CTRL, из FileOwner (MyViewController) в табличное представление, которое вы хотите обновить, и выберите myTableView, чтобы связать его.

person jkilbride    schedule 08.07.2010
comment
Спасибо, это была моя проблема, я подключил TableView через IBOutlet, но я использовал self.tableView, а не self.myTableView:/ раздражающая ошибка, спасибо :) - person Jonathan; 08.07.2010
comment
Нет проблем рад помочь. Не могли бы вы пометить ответ как принятый, если он полностью решил проблему. Спасибо. - person jkilbride; 08.07.2010

Одна вещь, которую нужно проверить, — убедиться, что self.tableView подключен к фактическому представлению таблицы.

Я часто забываю это сделать, и если это так, то сообщение reloadData не доходит до табличного представления.

person Avalanchis    schedule 08.07.2010
comment
Да, я проверил это, метод вызывается в TableViewController, а tableView подключен к контроллеру, поэтому нет другого tableView, который можно было бы подключить. Или я должен подключить представление таблицы другим способом? - person Jonathan; 08.07.2010
comment
хорошо, я решил проблему и знаю, что вы имеете в виду, извините, я забыл использовать IBOutlet tableView :( спасибо - person Jonathan; 08.07.2010
comment
Если проблема решена, примите один из ответов, установив флажок слева. Я бы предложил принять ответ jkilbride, потому что он был первым и предоставил более подробную информацию об исправлении. - person Avalanchis; 08.07.2010