2011-01-05 9 views
8

Me enteré de que mi aplicación no se comporta bien en iOS multitarea en caso de que cierto ViewController estuviera activo al salir de la aplicación. Este controlador de vista necesita recopilar información reciente para mostrarla. Hasta ahora, el código de inicialización para recopilar esta información solo se ha colocado en viewWillAppear.UIApplicationWillEnterForegroundNotification versus viewWillAppear - ¿patrón para la inicialización?

Ahora he aprendido que no se llamará a viewWillAppear cuando la vista aparecerá desde el fondo.

Como el mundo puede haber cambiado desde que se envió la aplicación a segundo plano, el controlador de vista necesita reiniciarse. Entiendo que puedo registrarme para UIApplicationWillEnterForegroundNotification. Sin embargo, esto se dispara cada vez que la aplicación vuelve al primer plano, sin importar si el usuario está navegando actualmente a este control de vista en particular.

¿Tiene un patrón de cómo hacer uso de UIApplicationWillEnterForegroundNotification sólo cuando el ViewController está activo en el sentido de "aparecerá en breve"?

Respuesta

7

Registro de UIApplicationWillEnterForegroundNotification en viewWillAppear:, y anular el registro en viewWillDisappear:. De esa forma, solo se te notificará cuando la vista esté realmente visible.

+0

Esto suena muy obviamente correcto. Confirmé que funciona así. Muchas gracias. – Miriam

Cuestiones relacionadas