重要な点は、UIView.transition
のanimations
でViewControllerの入れ替えをするのではなく、先に入れ替え処理を書いてからUIView.transition
を呼び出すこと。(animations引数は空のクロージャ。)
class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? ... func setRootViewController(_ vc: UIViewController) { guard let window = window else { return } window.rootViewController = vc UIView.transition( with: window, duration: 0.5, options: .transitionFlipFromLeft, animations: {}, completion: { _ in }) } }
こんな感じでアニメーションさせられます。
アニメーションの種類は他にもあるので .transitionFlipFromLeft
に定義ジャンプして確認してみてください。
ページ送りやフェードのアニメーションもできます。