Tengo un UIButton
(el "button de retroceso") en la esquina superior izquierda de una aplicación de iPad que descarta un controller de vista. Descubrí que si toca este button un poco demasiado alto, puede activar el button y comenzar a bajar el panel de notifications al mismo time. Cuando esto sucede, mi -viewWillDisappear
se ejecuta y detiene las animaciones en la vista, pero la vista no se descarta. Por supuesto, el panel de notifications no desciende por completo, por lo que el resultado neto parece que mis animaciones se bloquearon y que el button de retroceso también falló.
La solución obvia sería simplemente mover el button hacia abajo un poco, pero como eso no es deseable por razones de layout, tengo curiosidad si:
EDITAR: en realidad parece ser un problema menor después de todo. Resulta que es mi -applicationWillResignActive
que se -viewWillDisappear
llamada, no -viewWillDisappear
. Todavía se ve mal, pero al less el comportamiento está bien definido. No estoy activando el button de mi casa en absoluto, simplemente bajando el panel de notifications.
He hecho un UIViewController que tiene una animation progtwigda (como un banner publicitario) y al cerrar el panel de notifications no se detiene hasta que el panel se haya revelado completamente.
Tal vez tenga que lidiar con sus animaciones en -applicationWillResignActive:
y -applicationDidBecomeActive:
como hacer una pausa y reanudarlas.
Puede recibir esas notifications directamente en su UIViewController (en lugar de tratar con ellas en su AppDelegate) agregando el siguiente código a su -viewDidLoad
:
// Add observers [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(pauseAnimations:) name: UIApplicationWillResignActiveNotification object:nil]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(resumeAnimations:) name:UIApplicationDidBecomeActiveNotification object:nil];