Frage

Wie kann ich erkennen, das Ende der Animation einer modalen Ansicht (wenn ich eine tun entlassen)? (Ich spreche über MFMailComposeViewController, die von mir nicht erstellt ...)

Danke

War es hilfreich?

Lösung

Ihr modal View-Controller hat eine -viewDidDisappear: Methode, die automatisch aufgerufen wird, wenn der Blick vom Bildschirm entfernt wird. Sie können diese Methode in Ihrem Modal-View-Controller außer Kraft zu tun, was Sie wollen.

Auch Sie können die -viewDidAppear: Methode im View-Controller zu prüfen, die Umsetzung deren Ansicht von Ihrer modalen Ansicht verschwindenden enthüllt wird.

Andere Tipps

Sie können MFMailComposeViewController Unterklasse und seine -viewDidDisappear: überlasten.

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

Ich brauchte etwas zu tun, nachdem eine modale Ansicht entlassen, und nur dann, wenn es sicher ist, dass die modale Ansicht wirklich (been dealloc-ed komplett) verschwunden ist. So viewDidDisappear und seine Freunde in der modalen Ansicht waren zu früh für mich.

Am einfachsten war ich gefunden, nur mit einem NSTimer meinen Code zu verzögern. Wenn modal Ansicht ruft seine Delegierten und die Delegierten ruft die modale Ansicht entfernen, es reiht auch den Code bis zu laufen, wenn die modale Ansicht ist weg. Das Timing war so etwas wie 300ms oder 400ms. (Gibt es eine Möglichkeit, den tatsächlichen Zeitpunkt von irgendwo abrufen?)

Normalerweise benachrichtigt werden, wenn eine Animation abgeschlossen Sie einen Delegaten festgelegt durch das Senden setAnimationDelegate: auf die UIView Klasse.

Wenn ein VC [someVC dismissModalViewControllerAnimated:YES] mit abgewiesen können Sie die Animation Delegat nicht gesetzt, aber wenn Sie NO stattdessen senden und tun Sie Ihre eigene Animation der Ansicht des VC Sie können die Delegierten festgelegt und benachrichtigt werden, wenn die Animation abgeschlossen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top