以下の記事が参考になると思います。
UINavigationControllerで2つ以上前の画面に戻る方法
NavigationController
にぶら下がっているViewController
はnavigationController.viewControllers
で取得できるので戻りたいViewController
を指定して戻る。
swift
1if let navi = navigationController,
2 let firstVC = navi.viewControllers.first {
3 navi.popToViewController(firstVC, animated: true)
4}
回答追記1
特定のViewController
に遷移したい場合はviewcontrollers
の中にそのviewController
が含まれているか確認して含まれていればそこに遷移するようにします。
swift
1if let navi = navigationController {
2 for vc in navi.viewControllers {
3 if vc is ViewControllerC {
4 navi.popToViewController(vc, animated: true)
5 }
6 }
7}
8
回答追記2
viewControllerBが含まれていない場合にViewControllerBを作成してViewControllersを設定しなおす。
swift
1
2if let navi = navigationController {
3 for vc in navi.viewControllers {
4 if vc is ViewControllerB {
5 navi.popToViewController(vc, animated: true)
6 }
7 }
8
9 // ViewControllersに `B`が含まれていない場合
10 if let viewControllerA = navi.viewControllers.first,
11 let viewControllerB = storyboard?.instantiateViewController(withIdentifier: "viewControllerB") {
12 navigationController?.setViewControllers([viewControllerA,
13 viewControllerB], animated: true)
14}
15
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/16 00:58
2018/07/16 01:39
2018/07/16 01:55
2018/07/16 02:06
2018/07/16 02:12
2018/07/16 02:39
2018/07/16 02:50
2018/07/16 02:53
2018/07/16 03:54
2018/07/16 04:04
2018/07/16 04:20