Приложение NSNotificationCenter и UITabBar

Вот моя проблема:

У меня есть приложение. Он основан на четырех представлениях UITabBar. В представлении 3 что-то происходит, и уведомление отправляется в NSNotificationCenter. В представлении 1 есть наблюдатель, который ожидает указанного уведомления, чтобы сначала загрузить некоторые данные из локального файла (которые были сохранены в файле перед публикацией уведомления), а затем обновить UITableView -> [TableView reloaddata]. Итак... я добавил nslogs в наблюдатель и уведомление, и они срабатывают, но UITableView не обновляется, когда я переключаюсь на представление 1 (когда я перезапускаю приложение, все в порядке).

Что может пойти не так?

Кстати. обновление представления 1 должно происходить, пока в настоящее время присутствует представление 3.

Любая помощь приветствуется!


person pawelkata    schedule 30.07.2011    source источник


Ответы (1)


Просто поместите [tableView reloadData] в свой метод -(void)viewDidAppear:(BOOL)animated ViewController.

person Mundi    schedule 30.07.2011
comment
Привет Саша! Спасибо за Ваш ответ. Я переместил код из наблюдателя в '-(void)viewDidAppear:(bool)animated', но, к сожалению, это тоже странно не работает :-/ NSLog говорит, что метод срабатывает, но мое табличное представление не перезагружается. Я не могу понять, почему? - person pawelkata; 01.08.2011
comment
Возможно, убедитесь, что вы обращаетесь к правильному tableView. Одна из идей состоит в том, чтобы дать каждому tableView отдельное имя (в зависимости от того, на какой вкладке он находится). - person Mundi; 02.08.2011
comment
Все мои табличные представления имеют разные имена :-( Однако я провел дополнительные исследования, и проблема, похоже, связана с некоторой задержкой при записи данных в файл в представлении 3. Есть ли способ принудительно записать данные? Я пишу содержимое NSArray в представлении 3, которое должно быть загружено в представлении 1, но данные, похоже, не сохраняются, пока приложение не будет закрыто. - person pawelkata; 02.08.2011
comment
Я исправил это, уничтожив объект данных, а затем снова создав его со свежими данными в представлении 1. Спасибо за помощь, Саша! - person pawelkata; 02.08.2011