答案 0 :(得分:1)
如果您想返回到根视图控制器,可以使用:
self.navigationController?.popToRootViewController(animated: true)
如果您不想回到根视图控制器,可以使用另一种方法。
在当前的视图控制器中:
guard let navigationController = self.navigationController else {return}
for controller in navigationController.viewControllers {
if let neededVC = controller as? SomeViewController {
navigationController.popToViewController(neededVC, animated: true)
}
}
答案 1 :(得分:0)
假设两个视图控制器都在同一导航堆栈中,则可以使用导航控制器的功能popToViewController(_:animated:)
。
navigationController?.popToViewController(theViewControllerInstanceYouWantToGetBackTo, animated: true)
https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621871-poptoviewcontroller。
在特定情况下,您还可以使用popToRootViewController(animated:)
,因为-根据您的屏幕截图-您想弹出导航控制器的初始视图控制器。
navigationController?.popToRootViewController(animated: true)
答案 2 :(得分:0)
如果您使用segue,请使用'Unwind segue'
为此,在您的“视图控制器”中编写给定代码
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}
在B_viewcontroller中,在按下按钮时调用“ Unwind segue”。与self.performSegue(withIdentifier: "YourSegueForA_VeiwController", sender: nil)
借助Unwind segue,您还可以发送数据