Ich bin mir nicht sicher, ob ich verstehe, was transitionFromViewController:toViewController:duration:options:animation:completion:
tut genau. Ist es nur eine Bequemlichkeitsmethode?
Was ist zum Beispiel der Unterschied zwischen ...?
%Vor%... und das?
%Vor% Der Grund, warum ich frage, ist, dass ich in einigen Fällen die Kind-Controller-Ansicht zu einer bestimmten Unteransicht der Container-Controller-Ansicht hinzufügen muss. Die Verwendung von transitionFromViewController:toViewController:duration:options:animation:completion:
gibt mir diese Option nicht.
Ja, ich denke, Sie haben Recht: Sie scheinen funktional gleich zu sein (nicht sicher, dass wir es eine Bequemlichkeitsmethode nennen können, ohne die Details der Implementierung zu kennen, aber das könnte gut sein). Offensichtlich ist transitionFromViewController
für die Containerreservierung des Ansichtscontrollers ausgelegt und animateWithDuration
ist eine Allzweckanimation von Views.
Da Sie offensichtlich die Eindämmung durchführen, sollte man wahrscheinlich transitionFromViewController
anstatt animateWithDuration
verwenden. Es ist eindeutig und die Technik empfohlen von Apple . Und wenn Sie das fromViewController.view
in einer Unteransicht haben, wird das neue toViewController.view
zur selben Unteransicht hinzugefügt.
Ich würde auch vorschlagen, die fehlende willMoveToParentViewController
und addChildViewController
(die ich aus Gründen der Kürze weggelassen habe, aber ich schließe der Vollständigkeit halber):
Beachte auch, dass ich UIViewAnimationOptionTransitionCrossDissolve
verwende. Wenn Sie Alphas manuell einstellen, vergessen Sie nicht, toViewController.view.alpha
zu initialisieren, z. B.:
Kurze Antwort :
Nein, es ist nicht nur eine Bequemlichkeitsmethode, da die Erscheinungsform für beide Kindersteuerungen unterschiedlich ist.
Lange Antwort :
Bezüglich - & gt;
Was passiert hinter der Szene, wenn Sie
anrufen? %Vor%ist so etwas (natürlich ist das nicht vollständig)
%Vor%Wenn Sie danach die Animation machen, "denkt" ViewController, dass seine Ansicht bereits sichtbar ist und ohne Animation dargestellt wurde. Das Gleiche gilt für den fromViewController. Während Ihrer Animation weiß der fromViewController nicht, dass die Ansicht gelöscht wird, da viewWill / DidDisappear nach der Animation mit Ihrem Aufruf an
aufgerufen wird %Vor%
Auf der anderen Seite - & gt;
macht so etwas
%Vor% So lange Antwort kurz :
viewWillAppear und viewWillDisappear werden innerhalb des Animationsblocks aufgerufen und an true übergeben. Dies kann für Ihre Anwendung nützlich sein oder auch nicht, daher kann es einen Unterschied zwischen den beiden Methoden geben oder auch nicht.
Wie die Dokumentation sagt, soll es für den Übergang zwischen zwei untergeordneten Ansichtscontrollern verwendet werden, nicht für zwei Ansichten desselben untergeordneten Ansichtscontrollers.
In Ihrem ersten Code-Snippet übergeben Sie dasselbe toViewController
wie die ersten beiden Parameter. Es ist beabsichtigt, dass dies zwei verschiedene View-Controller sind, nicht derselbe.
Ihr zweites Beispiel ist besser geeignet, wenn Sie nur Ansichten desselben View-Controllers wechseln.
Tags und Links iphone ios uiviewcontroller ios5