2011-01-20 14 views
7

Mam dość proste pytanie, ale wciąż znajduję drogę wokół kakao. Mam normalną aplikację rootViewController utworzoną w Xcode. W AppDelegate mam funkcję aktualizacji bazy danych. Kiedy w trakcie działania pojawia się wiadomość Push (didReceiveRemoteNotification :), dane są aktualizowane.Przeładuj tabelę Wyświetl od AppDelegate

Ale w jaki sposób uzyskać uchwyt na RootViewController, mówiąc mu, aby zaktualizować swoje obiekty, a następnie ponownie załadować tabelę (która jest funkcją)?

Odpowiedz

20

Można użyć NSNotificationCenter patrz NSNotificationCenter Class Reference

w twojej rootViewController 's viewDidLoad dodaj następujący:

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

i dodaj następującą metodę:

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

W swojej AppDelegate' s didReceiveRemoteNotification, dodaj następujące informacje:

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

Cóż, to było warte pytania, ponieważ jest o wiele prostsze niż wszystko, co próbowałem, i bardzo przydatne do dalszych funkcji !!! Stukrotne dzięki! –

Powiązane problemy