objective c - developer - Llamada de retorno visible UIViewController
uikit apple developer (2)
El delegado de la aplicación es el lugar correcto para manejar los cambios de estado de la aplicación, pero solo porque ese es el caso, no significa que deba poner allí toda la lógica que se desencadena por el cambio de estado de la aplicación.
Pon la lógica donde pertenece. Si se trata de un código de red, no está en el delegado de la aplicación y no está en el controlador de vista, está en una clase separada. Luego busque formas de vincular las diferentes partes de su aplicación. En la mayoría de los casos, las notificaciones, KVO y el patrón de instancia compartido son buenos enfoques a seguir.
Estoy desarrollando una aplicación para iOS donde necesito hacer algunas cosas cuando tengo conexión a Internet y otras cuando no. Si no lo he hecho en algún momento, mostraré un mensaje al usuario para que me dé acceso a Internet y regrese. La pregunta es cómo detectar la siguiente situación:
- el usuario presiona el botón de Inicio dos veces, va a la multitarea, Configuración y se conectará a internet
- el usuario regresa con la multitarea a mi aplicación, pero no presiona nada
Sé que recibiré devoluciones de llamada a AppDelegate:
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void) applicationDidBecomeActive:(UIApplication *)application
pero el código (no lo he iniciado) es muy grande, y no quiero manejar allí las necesidades del UIViewController, si hay alguna alternativa.
Mi UIViewController''s - (void) viewDidAppear: (BOOL) animado no se llama cuando el usuario regresó.
¡El punto de quiebre no está seguro!
¿Alguna idea utilizable, excepto en AppDelegate?
Puede usar el centro de notificaciones para escuchar applicationDidEnterBackground
dentro del controlador de vista:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
Haz esto en viewDidLoad
. Similarmente para applicationDidBecomeActive
.
No olvides viewDidUnload
como observador en viewDidUnload
.