sale descargar cuando compatibilidad iphone objective-c animation modal-view

descargar - ios 12 iphone 6s



iPhone-Detecta el final de la animaciĆ³n (4)

¿Cómo puedo detectar el final de la animación de una vista modal (cuando hago un descarte)? (Estoy hablando de MFMailComposeViewController que no fue creado por mí mismo ...)

Gracias


Necesitaba hacer algo después de descartar una vista modal, y solo cuando es seguro que la vista modal realmente se ha ido (se ha desmantelado por completo). Entonces viewDidDisappear y sus amigos en la vista modal eran demasiado pronto para mí.

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


Su controlador de vista modal tiene un método -viewDidDisappear: que se invoca automáticamente cada vez que se elimina la vista 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 vista se revela al desaparecer su vista modal.


Puede subclasificar MFMailComposeViewController y sobrecargar su -viewDidDisappear:

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


Normalmente, para recibir una notificación cuando se completa una animación, configura un delegado enviando setAnimationDelegate: a la clase UIView.

Cuando se descarta un VC utilizando [someVC dismissModalViewControllerAnimated:YES] no puede establecer el delegado de animación, pero si envía NO en su lugar y hace su propia animación de la vista del VC, puede configurar el delegado y recibir una notificación cuando se complete la animación.