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.