重要な点は、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
に定義ジャンプして確認してみてください。
ページ送りやフェードのアニメーションもできます。