Pregunta

¿Cómo puedo detectar el final de la animación de una vista modal (cuando hago una despedir a)? (Estoy hablando de MFMailComposeViewController que no se crea por mí mismo ...)

Gracias

¿Fue útil?

Solución

Su controlador de vista modal tiene un método -viewDidDisappear: que se invoca automáticamente cada vez que la vista se elimina de la pantalla. Puede anular este método en su controlador de vista modal para hacer lo que quiera.

Además, es posible que desee considerar la implementación del método -viewDidAppear: en el controlador de vista cuya visión quede revelado por su punto de vista modal desapareciendo.

Otros consejos

Puede subclase MFMailComposeViewController y sobrecargar su -viewDidDisappear:.

@interface MyCtrler : MFMailComposeViewController
@end
@implementation MyCtrler
-(void)viewDidDisappear:(BOOL)animated {
   [super viewDidDisappear:animated];
   // do anything you like
}
@end

que tenía que hacer algo después de despedir a un punto de vista modal, y sólo cuando está seguro de que el punto de vista modal realmente se ha ido (estado completamente dealloc-ed). Así viewDidDisappear y sus amigos en la vista modal eran demasiado temprano para mí.

La forma más fácil que encontré fue simplemente retrasar mi código con un NSTimer. Cuando vista modal llama a su delegado y el delegado invoca la eliminación de la vista modal, sino que también pone en cola el código a ejecutar cuando la vista modal se ha ido. El momento fue algo así como 300 ms o 400 ms. (¿Hay una manera de recuperar el tiempo real de alguna parte?)

Normalmente, para ser notificado cuando una animación está terminada, se configura un delegado enviando setAnimationDelegate: a la clase UIView.

Cuando un VC es despedido usando [someVC dismissModalViewControllerAnimated:YES] no podrá ajustar el delegado de animación, pero si no enviará en su lugar y hacer su propia animación de vista del VC que puede establecer el delegado y ser notificado cuando la animación se ha completado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top