[Swift] ViewController間で遷移する方法(複数アニメーション付き)
こんにちは、@yoheiMuneです。
今日はSwiftで、ViewController間の遷移方法をブログに書きたいと思います。
これを、遷移前に指定しておくと、指定したアニメーションで遷移することができます。
UIViewControllerAnimatedTransitioningを使って画面遷移アニメーションを作る - Qiita
最後になりますが本ブログでは、Swift・Python・Java・フロントエンド・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
今日はSwiftで、ViewController間の遷移方法をブログに書きたいと思います。
目次
ViewController間で遷移する(基本編)
ViewController間で遷移するには、以下のように実装します(以下例ではviewDidAppearで遷移していますが、ボタンアクション時などでも同様に書けます)。
import UIKit
class ViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
// 次の遷移先のViewControllerインスタンスを生成する
let vc = NextViewController()
// presentViewControllerメソッドで遷移する
// ここで、animatedをtrueにするとアニメーションしながら遷移できる
self.presentViewController(vc, animated: true, completion: nil)
}
}
そして、戻る(1つ前のViewControllerに戻る)場合には、以下のように実装します。
import UIKit
class NextViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
// 戻る場合には、dismissViewControllerAnimatedメソッドを使います。
// ここで、animatedをtrueにするとアニメーションしながら遷移できる
self.dismissViewControllerAnimated(true, completion: nil)
}
}
新しくViewControllerを表示する場合はpresentViewController、戻る場合にはdismissViewControllerAnimatedを使うところがポイントです。規定のアニメーションを指定する
上記が基本ですが、以下4つのアニメーションを指定することができます。| 値 | 内容 |
|---|---|
| UIModalTransitionStyle.CoverVertical | 遷移先Viewが下から上にスライドアップする |
| UIModalTransitionStyle.CrossDissolve | 遷移元Viewがフェードアウトしつつ、遷移先Viewがフェードインする |
| UIModalTransitionStyle.FlipHorizontal | 遷移元Viewと遷移先Viewが水平方向に裏返しになる |
| UIModalTransitionStyle.PartialCurl | 遷移元Viewが下からめくれて、遷移先Viewがその下から表示される |
これを、遷移前に指定しておくと、指定したアニメーションで遷移することができます。
override func viewDidAppear(animated: Bool) {
let vc = NextViewController()
// ここで遷移アニメーションを指定する
// vc.modalTransitionStyle = .CoverVertical
// vc.modalTransitionStyle = .CrossDissolve
// vc.modalTransitionStyle = .FlipHorizontal
vc.modalTransitionStyle = .PartialCurl
self.presentViewController(vc, animated: true, completion: nil)
}
このように4つの規定アニメーションを指定して、遷移することができます。独自のアニメーションを指定する
独自にもアニメーションを指定することができます。詳細は以下のブログがわかりやすかったので、そちらをご参照ください。UIViewControllerAnimatedTransitioningを使って画面遷移アニメーションを作る - Qiita
最後に
今日はSwiftでのViewControllerの遷移についてブログを書きましたが、アニメーションもデフォルトで幾つか用意されていて便利ですね。ライブラリとかも色々とありそうなので調べてみたいと思います。Swiftは今後も学んでいきたい言語の一つなので、色々とブログを書けたらと思います。最後になりますが本ブログでは、Swift・Python・Java・フロントエンド・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!





