我有一个 View Controller (1),它在表中列出了一些实体。如果用户想要添加一个新实体,他们单击并在他们转到 VC2 的地方“添加”按钮(一个包含用于填写必要字段以添加新实体的表单的 View )。他们在 VC2 添加实体后,我希望他们自动转发到与他们刚刚添加的实体相关的详细信息屏幕 VC3。通常,当他们单击表中的现有实体时,此详细信息屏幕 VC3 是 VC1 的一个 segue。
我目前在 VC2 中
//go back to VC1
navigationController?.popViewController(animated: true)
//Segue to VC3
VC1?.performSegue(withIdentifier: "goToDetail", sender: self)
这个问题是用户看到 View 变回 VC1,然后由于“pop”和 segue 而变回 VC3。
如果我省略 navigationController?.popViewController(animated: true)
并直接转到 VC3,它会按预期工作,除非用户使用 VC3 的后退按钮,它会将它们返回到 VC2,这是他们填写的表格,但我真的希望他们跳过 VC2 并返回 VC1。
最佳答案
嗯,你有两个明显的选择,都非常简单。
要么继续从 VC2 推送到 VC3,然后通过使用
[VC1,VC3
调用setViewControllers(_:animated:)
从堆栈中删除 VC2 >],否则……通过调用
popToRootViewController(animated:)
更改用户从 VC3 弹出时发生的情况,以便我们一直向下弹出到 VC1。
关于swift - 从以前的 VC 转到 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691068/