Question

Comment puis-je détecter la fin de l'animation d'une vue modale (quand je fais rejeter)? (Je parle de MFMailComposeViewController qui n'est pas créé par moi-même ...)

Merci

Était-ce utile?

La solution

Votre contrôleur modal a vue une méthode -viewDidDisappear: qui est appelée automatiquement chaque fois que la vue est retiré de l'écran. Vous pouvez remplacer cette méthode dans votre contrôleur modal en vue de faire tout ce que vous aimez.

En outre, vous voudrez peut-être envisager d'appliquer la méthode -viewDidAppear: dans le contrôleur de vue dont la vue se fait révélé par votre disparition modale vue.

Autres conseils

Vous pouvez sous-classe MFMailComposeViewController et surcharger son -viewDidDisappear:.

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

Je devais faire quelque chose après avoir rejeté une vue modale, et seulement quand il est sûr que la vue modale est vraiment parti (été complètement dealloc-ed). Alors viewDidDisappear et ses amis dans la vue modale étaient trop tôt pour moi.

Le plus que j'ai trouvé à retarder juste mon code avec un NSTimer. Lorsque vue modale appelle son délégué et le délégué invoque la suppression de la vue modale, il file d'attente aussi le code à exécuter lorsque la vue modale est parti. Le moment était quelque chose comme 300ms ou 400ms. (Y at-il un moyen de récupérer le temps réel de quelque part?)

Normalement, pour être averti quand une animation est terminée, vous définissez un délégué en envoyant setAnimationDelegate: à la classe UIView.

Quand un VC est rejetée à l'aide [someVC dismissModalViewControllerAnimated:YES] vous ne pouvez pas définir le délégué de l'animation, mais si vous envoyez pas à la place et de faire votre propre animation de vue que vous peut définir le délégué du VC et être averti quand l'animation est terminée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top