2010-08-21 6 views
10

Así que quiero apoyar el cambio de aplicación en mi próxima aplicación de iPhone y he implementado todos los métodos de delegado adecuados en mi delegado de la aplicación. Entonces, cuando el usuario reanuda la aplicación, puedo ver su actividad en NSLog y todo. Sin embargo, ¿cómo puedo saber si mi aplicación reanudó un controlador? ¿Hay algún método que pueda poner en mi controlador para decirme que la aplicación se ha reanudado en dicho controlador? La razón por la que pregunto es porque mi aplicación maneja su propio esquema de URL y quiero actualizar la vista en función de la URL iniciada. Cualquier ayuda será apreciada.¿Cómo saber cuándo el controlador se ha reanudado desde el fondo?

Gracias de antemano

Respuesta

19

Usted puede tener que el controlador observa la notificación UIApplicationWillEnterForeground. Probablemente sería algo como esto:

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    //do stuff here 
    if(&UIApplicationWillEnterForegroundNotification) { //needed to run on older devices, otherwise you'll get EXC_BAD_ACCESS 
     NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 
     [notificationCenter addObserver:self selector:@selector(enteredForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; 
    } 


} 
- (void)enteredForeground:(NSNotification*) not 
{ 
    //do stuff here 
} 
+0

¿Cómo lo hago? –

-2

Usted también puede simplemente anular - (void)applicationDidBecomeActive:(UIApplication *)application en el delegado de la aplicación para hacer que haga lo que quiera que hay que hacer cuando se trata de volver desde el fondo. Si desea obtener una vista en particular para recibir el mensaje en lugar del delegado de la aplicación, debe registrarse para recibir la notificación tal como lo describió anteriormente Elfred.

1

Para Swift 4:

NotificationCenter.default.addObserver(self, 
selector: #selector(appWillEnterForeground), 
name: NSNotification.Name.UIApplicationWillEnterForeground, 
object: nil) 



@objc func appWillEnterForeground() { 
    // do staff 
} 
+0

El número de corchetes abrir y cerrar no es igual. – ittgung

+0

@ittgung gracias :) – chawki

Cuestiones relacionadas