はじめに
UINavigationControllerで複数画面分戻る方法がSwift4で少し実装方法が変わっていたので備忘録
環境
Xcode 9.2
Swift 4.0.2
実装方法
// indexを指定してrootViewController(最初の画面)に戻る
navigationController?.popToViewController(navigationController!.viewControllers[0], animated: true)
// popToRootViewControllerAnimatedでrootViewController(最初の画面)に戻る
navigationController?.popToRootViewController(animated: true)
// indexを指定してrootViewControllerの2つ先(3番目の画面)に戻る
navigationController?.popToViewController(navigationController!.viewControllers[2], animated: true)
// 一つ前のViewControllerに戻る
navigationController?.popViewController(animated: true)
// おまけ 指定した画面数分戻る(下記は2画面分戻る)
let cnt = navigationController!.viewControllers.count
navigationController?.popToViewController(navigationController!.viewControllers[cnt-3], animated: true)
indexを指定して戻る場合、0より小さい値を設定するとエラーが発生する。
また、例え1度表示した画面であっても現在の画面よりも先の画面へは遷移できないようです。