Перезагрузите tableView из AppDelegate

У меня довольно простой вопрос, но я все еще нахожу подход к какао. У меня есть обычное приложение rootViewController, созданное в Xcode. В AppDelegate у меня есть функция для обновления базы данных. Когда во время работы приходит Push-сообщение (didReceiveRemoteNotification:), данные обновляются.

Но как мне получить дескриптор RootViewController, говорящий ему обновить свои объекты, а затем перезагрузить таблицу (которая является функцией)?


person Luuk D. Jansen    schedule 20.01.2011    source источник


Ответы (1)


Вы можете использовать NSNotificationCenter, см. Справочник по классу NSNotificationCenter

В viewDidLoad вашего rootViewController добавьте следующее:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView:) name:@"updateRoot" object:nil];

и добавьте следующий метод:

- (void)updateView:(NSNotification *)notification {
    [myTableView reloadData]; 
}

В didReceiveRemoteNotification вашего AppDelegate добавьте следующее:

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateRoot" object:nil];
person WrightsCS    schedule 20.01.2011
comment
Что ж, это стоило того, чтобы спросить, так как это намного проще, чем все, что я пробовал, и очень полезно для дальнейших функций!!! Бесконечно благодарен! - person Luuk D. Jansen; 20.01.2011