/ / ¿Cómo puedo actualizar el contenido de una vista antes de hacer popViewController? - ios, uiviewcontroller, uinavigationcontroller, viewdidload, popviewcontroller

¿Cómo puedo actualizar el contenido de una vista antes de hacer popViewController? - ios, uiviewcontroller, uinavigationcontroller, viewdidload, popviewcontroller

tengo dos viewcontroller. El primer controlador de vista incluye un mapa yanotaciones, cuando toco una anotación llega mi segunda vista. En la segunda vista toco el botón de eliminar. Entonces el contenido de mi primera vista debe actualizarse antes de este código: [self.navigationController popViewControllerAnimated:YES]; necesito llamar viewdidload Método o actualizar el contenido de mi vista anterior de la segunda vista.

Respuestas

4 para la respuesta № 1

- (void) viewWillAppear: animated

No estoy seguro si se llama antes [self.navigationController popViewControllerAnimated: YES]; Pero sin duda antes de ver la vista. Haga una llamada para recargar las anotaciones de su mapa en él.

También asegúrese de llamar a viewWillAppear super.

Si ambas vistas no funcionan desde el mismo objeto de datos, necesitará un delegado para devolver los datos.


0 para la respuesta № 2

Puedes usar un patrón de delegado, como dijo Andy, o NSNotificationCenter . Yo personalmente uso NSNotificationCenter.

Para usar el centro de notificaciones, debe agregar observadores a sus clases de controlador de vista. Cuando abre su vista, envía una notificación al centro, digamos que su notificación es update cuando notifiques al centro con update , el centro dice cualquier clase que tenga update Ejecutar un método .... es simple.

[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil];

Compruebe esta respuesta para el código completo: IOS: Retrocede dos vistas


0 para la respuesta № 3

Se llamará ViewWillApear o ViewDidApearya que hay cambios de objetos en el controlador de vista, pero si desea cambiar su controlador de vista A desde otro controlador de vistaB, es necesario que NSNotificationCenter llame a la función desde el controlador de vistaA

siempre puede usar NSNotificationCenter para actualizar su controlador de vista principal

En su controlador de vista padre ponga esto:

//since child view controller calls turnItOff, notification center calls function "turnButtonCountinuesOff"
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(turnButtonCountinuesOff) name:@"turnItOff" object:nil];

turnButtonCountinuesOff es su función en el controlador de vista principal

En el controlador de la vista de su hijo, ponga esto:

//connect to parent UI view controller calls notification turnItOff.
[[NSNotificationCenter defaultCenter] postNotificationName:@"turnItOff" object:nil];

Espero eso ayude.