In iOS 7 machen wir eine benutzerdefinierte Animation, die in einen neuen View-Controller übergeht. Die Beendigung der Animation lautet:
%Vor%Das funktioniert gut in & lt; = IOS 7. Wir machen es auch, während wir mit disneyViewController: auf das Original animieren. In iOS 8 wird jedoch sowohl ein vorhandener als auch ein ausgeblendeter Bildschirm zwischen dem Ende der Animation und dem Erscheinen der neuen Ansicht als ein Bild angezeigt. Gibt es einen Weg dahin? Alles läuft schon im Hauptthread.
Ich kann Ihnen wirklich empfehlen, das Protokoll " UIViewControllerAnimatedTransitioning
" für iOS 7 und höher zu übernehmen. Es ist einfach zu arbeiten und unglaublich optimiert für jeden Übergangstyp und jede Länge. Verwenden Sie auf jeden Fall weiterhin Ihre eigenen Animationen für ios 6 und darunter, aber Ihre Animationen verbessern sich sprunghaft, wenn Sie das neue Protokoll für ios 7 und höher übernehmen.
Lesen Sie die Dokumentation zu UIViewControllerAnimatedTransitioning
Ich habe das gleiche Problem und meine Lösung bestand darin, diese beiden Klassen zu bekommen.
Importieren Sie sie einfach in das Projekt und setzen Sie den Transitionsdelegaten:
%Vor%Sie können den Übergang von den Delegate-Klassen anpassen. Grüße
Ich habe das immer noch auf iOS 9 erlebt. Wie andere bereits erwähnten, scheint es die einzige Möglichkeit, dies zu vermeiden, ein Objekt zu erstellen, das UIViewControllerAnimatedTransitioning
implementiert. Hoffentlich kann ich jemand anderen die Zeit sparen, diese schlecht dokumentierte API zu navigieren. Folgendes müssen Sie tun:
self.modalPresentationStyle = UIModalPresentationCustom;
in der darzustellenden VC. Implementieren Sie im präsentierenden VC UIViewControllerTransitioningDelegate
und tun Sie Folgendes:
Geben Sie Ihr benutzerdefiniertes Animator-Objekt im präsentierenden VC zurück.
%Vor%Implementieren Sie diesen Übergang wie folgt:
%Vor%Nützliche Referenzen:
Tags und Links objective-c ios ios8 uiviewcontroller