que developer apple objective-c ios ios5 uiviewcontroller ios4

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 .