Swiftで画面を戻る処理が何種類かあるのでまとめてみました。
モーダル型で戻る
self.dismiss(animated: true, completion: nil)
dismiss
で画面を破棄しています。
モーダル型で2つ前の画面に戻る
self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil)
2つ前の画面に戻るコードです。
1つ前の画面へ戻る(NavigationController)
self.navigationController?.popViewController(animated: true)
NavigationControllerで1つ前の画面へ戻る処理。
トップの階層へ戻る(NavigationController)
self.navigationController?.popToRootViewController(animated: true)
NavigationControllerでトップの階層へ戻る処理。
任意の階層へ戻る(NavigationController)
self.navigationController?.popToViewController(navigationController!.viewControllers[階層の番号], animated: true)
NavigationControllerで任意の階層へ戻る処理。
*戻るだけで先に進むことはできません。
参考
https://naoya-ono.com/swift/navigation-controller-back/
https://qiita.com/Walkdream24/items/787df7d5b6e85330416a
Swiftのお役立ち情報