[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をフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!