上下文:我有两个 VC,A 和 B。VC A 包含几个按钮和几个标签。当按下 VC A 中的按钮时,segue 将显示 VC B/C/等等。现在,当完成 VC A/B/C 等等时,segue 正在展开,以便 VC A 出现。对于大多数 VC B/C/D 等等,我使用的是通过该 VC 中的按钮触发的展开方法(ctrl + 拖动到“退出”图标)。这很完美,因为返回到 VC A 后,将自动调用以下操作:
- (IBAction)returned:(UIStoryboardSegue *)segue {
// Here I do some stuff
}
问题:现在,在其中一个二级 VC(例如 D)中,情况有点特殊。在此 VC 中,我通过循环以编程方式生成了数百个按钮,然后检测正在按下哪个按钮,最后展开回 VC A(没有特定按钮;任何按钮都会触发展开)。我知道我可以做到这一点,例如使用这个
[self dismissViewControllerAnimated: YES completion: nil]
但这并不会在返回到VC A时触发上述 Action ,或者使用这个
[self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self]
但这会生成一个新的 VC A 实例,这是我不想要的(因为 VC A 实例中的标签已经包含了一些信息)。
所以,我想要的是能够返回到生成 VC D 的同一 VC A 实例,并且还触发上面列出的“返回”操作。因此,我想达到与使用连接到“退出”图标的按钮时相同的效果,但我想在按下 VC D 中的许多按钮之一时“在代码内部”以编程方式执行此操作。
有什么想法吗?
最佳答案
[self performSegueWithIdentifier:@"UnwindSegueIdentifier"sender:self]
应该可以正常工作。 Unwind segues 不会创建其目的地的新实例,无论它们是如何执行的。它们的独特之处在于它是唯一不创建目标新实例的 segue。
关于ios - 以编程方式展开 Segue - 新的转折,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820698/