Swap rootViewController mit animation?
Im Versuch zu tauschen, zu einem anderen root-Ansicht-controller mit einem tab bar; per app-delegate, und ich möchte hinzufügen, übergang animation. Standardmäßig wäre es nur die Ansicht ohne animation.
let tabBar = self.instantiateViewController(storyBoard: "Main", viewControllerID: "MainTabbar")
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window = UIWindow(frame: UIScreen.main.bounds)
appDelegate.window?.rootViewController = tabBar
appDelegate.window?.makeKeyAndVisible()
Das ist, wie ich in einem anderen rootview controller.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bewertet
UIView.transition(from: view, to: view)
undUIView.transition(with: view)
vor einiger Zeit, und landete mit dieser: (aber leider kann mich nicht erinnern, warum)rootViewController.view.frame
nicht die status bar ' s Rahmen für mich. Musste manuell einstellen, den Rahmen zu berücksichtigen, die status bar unter den top-20-Pixel..transitionCrossDissolve
? vielleicht möchten Sie erhöhen dieduration
wenn Sie nicht sehen können, das Kreuz-verblassen. 0.3 Sekunden kann leicht verpasst werden. Habe es gerade getestet - und funktioniert immer noch 🙂Versuchen Sie dies:
Habe ich eine app, die das tut: es ändert sich der root-Ansicht-controller mit animation (man nennt das Eiweiß).
Aber meine app eigentlich nicht tatsächlich ändern Sie das root-view-controller. Der root-view-controller ist ein custom container view controller, der sich niemals ändert. Ihr Blick niemals gesehen, und es hat keine Funktionalität. Seine einzige Aufgabe ist der Ort, wo der Wandel geschieht: Sie tauscht ein Kind view-controller für das nebeneinander — und damit der übergang animation funktioniert.
In anderen Worten, fügen Sie ein view controller an den view-controller Hierarchie, ganz oben in der Hierarchie, und das ganze problem ist gelöst, ordentlich und korrekt.
Alternative Lösung:
Swift 4
Paste-Funktion in
AppDelegate
:Habe ich eine helper-Klasse für diese basiert auf d....felber Antwort:
Können Sie es verwenden, wie diese:
oder