我的情节提要中有多个情节提要。我已经将firstVC嵌入了navigationcontroller,并通过segues附加到了firstvc。其余的VC不会嵌入在navigationcontroller中。现在,当我单击按钮以打开没有导航控制器的下一个VC时。它打开两次。当我断开segue时,它不会打开VC。我很困惑为什么会这样。这就是我的界面外观,
这就是我执行搜寻的方式,
self.performSegue(withIdentifier: "GoToNextVC", sender: self)
答案 0 :(得分:0)
视图控制器在堆栈层次结构上运行。通过将第一个视图控制器嵌入UINavigationController中并将其设置为初始视图控制器,您可以将其设为根整个堆栈的视图控制器。之所以出现您遇到的问题,是因为您每次调用performSegue(withIdentifier:sender:)
时都在根目录控制器不知情的情况下搜索到控制器。这会导致堆栈混乱并脱节,从而阻止您在调用dismiss(animated:completion:)
时返回到先前的视图控制器。
尝试使用以下方法将每个视图控制器推入堆栈,而不要使用segue:
navigationController?.pushViewController(VIEW_CONTROLLER, animated: true)
要使用此功能:
在Interface Builder中删除所有序列,不再需要它们。
将VIEW_CONTROLLER
替换为您要推送的视图控制器。