クイズアプリ開発入門書を書きました。

【Swift/Xcode】画面遷移元に戻る処理「dismiss(animated:completion:)」について

サトリク

この記事では、画面遷移元に戻る方法について解説します。戻る方法にもいくつかあるので、それぞれまとめてみました。

確認済動作環境

item Version
Swift 5.3
Xcode 12.0.1

バージョンの確認方法

 

モーダル遷移での画面遷移の場合

モーダル遷移の画像

モーダル遷移とはこのような遷移のことをいいます。

この遷移で戻りたい場合は、以下のコードを記述します。

dismiss(animated: true, completion: nil)

この1行だけで戻ります。

ふりがなをふるとこんな感じです。

dismiss退出させる(animatedアニメーションを: trueありで, completion完了した後の処理: nilなし)

 

animated : falseにすると、アニメーションなしで遷移元に戻ります。試してみてください。

ちなみに、completionnilの場合、省略することが可能です。

dismiss(animated: true)

これでも遷移元に戻れます。

 

プッシュ遷移の場合

プッシュ遷移の画像

プッシュ遷移というのは、ナビゲーションバーを使った横スライドの遷移のことです。

プッシュ遷移すると、ナビゲーションバーに自動的にbackボタンが配置されるので、わざわざ戻るボタンを設置して戻らせる場合はそれほどありませんが、もし画面遷移元に戻したい場合は、以下のコードを記述します。

navigationController?.popViewController(animated: true)

この1行だけで戻れます。

 

プッシュ遷移でトップに戻る場合

プッシュ遷移で、数回遷移した後に、一番最初に戻したいときがあるかもしれません。

その場合は以下のコードを記述します。

navigationController?.popToRootViewController(animated: true)

この1行だけで、一番最初の遷移元に戻れます。

 

プッシュ遷移で任意の画面に戻る場合

プッシュ遷移でトップではなく、例えば2つ前に戻りたい場合は、以下のコードを記述します。

navigationController?.popToViewController(navigationController!.viewControllers[2], animated: true)

この2のところを3に変えると3個前の画面に戻ります。

 

まとめ

画面遷移元に戻る処理をここまで解説してきました。

そもそも、どうやってこのコードを実行すればいいかわからないよという方は以下の記事をみながら手を動かしてみてください。

 

このブログでは他にもSwift、Xcodeの記事を書いていますのでぜひ読んでみてください。