【Swift】遷移前の画面への戻り方(NavigationControllerを使う場合)

記事内に商品プロモーションを含む場合があります

NavigationControllerを使う場合、画面の左上に戻るボタンがありますが、任意のタイミングで前の画面に戻りたい場合や戻る画面を指定したい場合は、コードを記述する必要があります。

NavigaationControllerを使わないのであれば以下の処理で戻ることができますが、NavigationControllerを使う場合、この記述では戻れません。

self.dismiss(animated: true, completion: nil)

そこで、このページではNavigationControllerを使う場合の画面の戻り方について解説します。

1つ前の画面へ戻る場合

1つ前の画面に戻る場合は、戻りたいタイミング(ボタンが押された時や、何か処理が終わった後など)で以下の処理を実行します。

self.navigationController?.popViewController(animated: true)



トップ画面へ戻る場合

トップ画面(階層)に戻りたい場合は、以下の処理を記述します。

  self.navigationController?.popToRootViewController(animated: true)

任意の階層へ戻る場合

トップ画面や1つ前ではなく、任意の階層に戻りたい場合は次のように書きます。

self.navigationController?.popToViewController(navigationController!.viewControllers[階層番号], animated: true)

例えば下の写真のように、「FourthView」で「Back」ボタンを押した時に2つ前の「SecondView」に戻りたいとします。

NavigationControllerの階層番号はTopViewから順に0、1、2、3と振られていくので、2つ目の画面に戻りたい場合は階層番号1を指定してあげればいいです。

実行結果

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA