2011-01-20 4 views
7

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

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

ответ

20

Вы можете использовать NSNotificationCenter см NSNotificationCenter Class Reference

В ваших rootViewControllerviewDidLoad, добавьте следующее:

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

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

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

В вашем AppDelegate' s didReceiveRemoteNotification, добавить следующее:

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateRoot" object:nil]; 
+0

Хорошо, что стоило спросить, поскольку это намного проще, чем все, что я пробовал, и очень полезно для дальнейших функций !!! Бесконечно благодарен! –