假设你有一些像以下的ViewControllers:
A --> B --> C --> X --> D
X
是某种可以从任何地方打开的永久菜单。所有这些都被插入到NavigationController
,所以为了回去,我会做类似的事情:
func leftNavButtonClick(sender: UIButton) {
navigationController?.popViewControllerAnimated(true)
}
但是,如果我从D
执行此操作,我想返回C
,而不是X
。我尝试在打开下一个ViewController
之前解雇菜单,但这看起来效果不是很好。
有什么想法吗?
答案 0 :(得分:2)
您可以使用视图控制器堆栈查找VC并弹出
if let vcStack = self.navigationController?.viewControllers
{
for vc in vcStack {
if vc.isKindOfClass(MyVC)
{
self.navigationController?.popToViewController(vc, animated: true)
break
}
}
}