2011-01-20 18 views
7

Tengo una pregunta bastante simple, pero todavía me estoy deshaciendo del cacao. Tengo una aplicación rootViewController como se creó en Xcode. En AppDelegate tengo una función para actualizar la base de datos. Cuando aparece un mensaje Push mientras se ejecuta (didReceiveRemoteNotification :), los datos se actualizan.Recargar una tablaView desde AppDelegate

Pero, ¿cómo puedo obtener un control sobre el RootViewController diciéndole que actualice sus objetos y luego vuelva a cargar la tabla (que es una función)?

Respuesta

20

Puede utilizar NSNotificationCenter, ver NSNotificationCenter Class Reference

En sus rootViewController 's viewDidLoad, añada lo siguiente:

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

y añadir el siguiente método:

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

En su AppDelegate' s didReceiveRemoteNotification, agregue lo siguiente:

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

Bueno, eso vale la pena preguntar, ya que es mucho más simple que cualquier cosa que probé, ¡y muy útil para otras funciones! ¡Un millón de gracias! –