当我点击 NavigationController 上的后退按钮时,我想返回两个 ViewController,而不是一个。
override func viewWillDisappear(_ animated: Bool)
{
super.viewWillDisappear(animated)
if self.isMovingFromParent
{
let vc = self.navigationController?.viewControllers[1] as! MyViewController
self.navigationController?.popToViewController(vc, animated: false)
}
}
这几乎按照我想要的方式工作。更改 self.navigationController?.viewControllers[1] 让我可以转到堆栈中的任何 ViewController。我遇到的唯一问题是它总是在直接转到我弹出的 ViewController 之前简要显示最顶层的 viewController。如何阻止它显示中间 ViewController?
我的问题是:
VC[0] → VC[1] → VC[2] → VC[3]
我想从 3 直接返回到 1 而不必显示 2。我想通过 NavigationController 后退按钮执行此操作。
最佳答案
如果堆栈中有一个 viewController,您可以使用类名返回到它。
let viewControllers: [UIViewController] = self.navigationController!.viewControllers ;
for aViewController in viewControllers {
if(aViewController is HomeViewController){
self.navigationController!.popToViewController(aViewController, animated: true);
}
}
关于ios - 从 NavigationController 后退按钮返回多个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57759447/