ミライスタート TECH系ブログ

株式会社ミライスタートのエンジニア達が気になったTECH系の記事等をアップしています!

UINavigationControllerのpop方法

UINavigationControllerは画面の並びに順番があり、次画面に進む、前画面に戻るといった遷移を作りたいときに使います。UINavigationControllerクラスはviewControllersという配列のプロパティを持っていて、この配列に個々の画面を格納していきます。
次の画面に進むときにはこの配列に次画面のViewControllerを格納(push)、前画面に戻る時はこの配列から今表示している画面のViewControllerを削除(pop)することで画面遷移します。
pushは大体storyboardで指定するpushセグエを実行することで行いますが、pop処理はコードの中で書いてやらないといけないケースが多いのでないでしょうか。(という気が実際開発していてしました)

そのpopの書き方はいくつか方法があるようです。

//1画面前に戻る
 navController.popViewControllerAnimated(true)
//特定の画面に戻る(2は指定したい画面によって変える)
let backViewController = navController.viewControllers[2]
navController.popToViewController(backViewController, animated: true)
//指定した画面数前に戻る(2は戻りたい画面数によって変える)
var viewControllers = navController.viewControllers
viewControllers.removeLast(2)
navController.setViewControllers(viewControllers, animated: true)