Ich hatte auf this question verwiesen und mehrere Fragen über View/View Controller-Übergang, konnte aber immer noch keine zufriedene Antwort finden. Die meisten Lösungen schlagen vor, die Ansichten anstelle von View-Controllern zu spiegeln. Die beiden View-Controller in meiner App haben jedoch eine völlig andere Betriebs- und Implementierungslogik, sodass ich es vermeide, sie miteinander zu mischen.Flip zwischen zwei ViewControllers unter dem gleichen NavigationController
In meiner App habe ich eine modale Ansicht Controller FrontViewController
, die in einem NavigationController eingebettet ist. Nach dem Drücken einer Taste in der Ansicht sollte der Modalansicht-Controller zu BackViewController
wechseln und umgekehrt. Ich hatte schon einmal versucht, die folgenden in FrontViewController
:
let navi = UINavigationController(rootViewController: backController)
navi.modalPresentationStyle = .CurrentContext
navi.modalTransitionStyle = .FlipHorizontal
self.presentViewController(backController, animated: true, completion: nil)
Das funktioniert fast wie das, was ich will, außer dass es Navigationsleiste und Flips. Wenn ich die modale Ansicht verwerfe, wird außerdem nur der View-Controller oben auf dem Stack verworfen, während es mir nicht gelang, den richtigen übergeordneten/präsentierenden Controller dazu zu bringen, alle anderen Stack-Controller in der modalen Ansicht zu verwerfen.
So habe ich versucht, weiter Viewcontroller Stapel zu verhindern und stattdessen transitionFromViewController
in FrontViewController
mit den gleichen Navigation-Controller verwenden:
self.navigationController!.addChildViewController(backController)
self.willMoveToParentViewController(nil)
self.navigationController!.transitionFromViewController(self, toViewController: backViewController, duration: 1, options: .TransitionFlipFromLeft, animations: {}, completion: ({Bool -> Void in
self.removeFromParentController()
c.didMoveToParentViewController(self)
}))
Dann habe ich diesen Laufzeitfehler auf executiing: Parent view controller is using legacy containment in call to -[UIViewController transitionFromViewController:toViewController: duration:options:animations:completion:]
So, wie man Übergang zwischen zwei View-Controllern, während verhindert wird, dass sie im View-Controller-Stack verbleiben?
Diese Lösung ist einfach und funktioniert Wie ein Zauber! Danke vielmals! – whitney13625