ios - 以编程方式展开 Segue - 新的转折

标签 ios cocoa-touch segue

上下文:我有两个 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/

相关文章:

objective-c - UIButton子类化时,UIControlState获取值的名称是什么?

ios - Swift Firebase "Cannot assign value of type ' Information' to type 'NSDictionary?' "

ios - 防止 Action 两次触发的更有效方法是什么?

ios - CoreText 是否支持小型大写字母?

objective-c - 避免 UIKeyboard 和自动布局

iOS Swift 始终以相同的 View Controller 开始

ios - swift : Segue Taped menu item's name on navigation bar title with SWRevealViewController

ios - 解析无效 session token 错误1.8.2

ios - 通过代码删除 Parse 中的列/索引

objective-c - 更改导航栏色调颜色