uialert iphone notifications uialertview

iphone - uialertcontroller swift 4



¿Puedo recibir un mensaje cuando muestre UIAlertView? (4)

Quiero recibir un mensaje cuando el sistema muestre UIAlertView para poder detener mi juego.

¿Alguien sabe cómo descubrir eso?

UIAlertView no está controlado por mí mismo.


Si su UIAlertView es de una aplicación de terceros (no de su aplicación), entonces puede implementar los métodos de delegación a continuación para pausar y reanudar el juego.

Pausar juego

- (void)applicationWillResignActive:(UIApplication *)application { }

Para reanudar juego

- (void)applicationDidBecomeActive:(UIApplication *)application { }

Por ejemplo, si recibes una llamada o un SMS, puedes utilizar el delegado anterior para pausar / reanudar el juego.


Una alerta del sistema normalmente se muestra en su propia UIWindow . Instale controladores para las notificaciones UIWindowDidBecomeVisibleNotification y UIWindowDidBecomeHiddenNotification para rastrear cuándo una UIWindow vuelve visible y oculta, respectivamente:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(aWindowBecameVisible:) name:UIWindowDidBecomeVisibleNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(aWindowBecameHidden:) name:UIWindowDidBecomeHiddenNotification object:nil];

En los controladores, tome la UIWindow que cambia el estado de la propiedad del object de la notificación:

- (void)aWindowBecameVisible:(NSNotification *)notification { UIWindow *theWindow = [notification object]; NSLog(@"Window just shown: %@", theWindow); } - (void)aWindowBecameHidden:(NSNotification *)notification { UIWindow *theWindow = [notification object]; NSLog(@"Window just hidden: %@", theWindow); }

Finalmente, verifique que la theWindow contiene una subvista de tipo UIAlertView .


Solo haz esto:

- (void)applicationWillResignActive:(UIApplication *)application { //pause } - (void)applicationDidBecomeActive:(UIApplication *)application { //resume }


ApplicationWillResignActive Application Delegate applicationWillResignActive: se invocará en las interrupciones. Puede manejar la pausa allí o incluso puede escuchar UIApplicationWillResignActiveNotification en su controlador de vista y pausar el juego allí.

Puede consultar this part de la Guía de aplicaciones de iOS que detalla el ciclo de vida de la aplicación y las transiciones de estado.