【发布时间】:2016-03-18 09:47:40
【问题描述】:
我使用 segue to Exit 技术以编程方式创建的按钮创建了一个从视图控制器 #2 到视图控制器 #1 的典型展开流程。
我有跟踪语句确认按钮代码正在完美执行,并且 #2 performSegueWithIdentifier 函数正在使用正确的 segue ID 调用,但没有任何反应。
澄清一下:
我已将视图控制器#2 连接到出口并确认 segue ID 在所有位置都是准确的。我在#2 performSegueWithIdentifier 函数中跟踪了#2 标识符,它完全匹配。
据我了解,我不再需要对当前版本的 2016 XCode 使用 dispatch 修复。无论如何我都试过了,但没有任何效果。没有崩溃,只是没有放松。
不知何故,使用此退出技术时,展开技术并未逆转。有什么想法吗?
我一直在关注这里的教程:https://spin.atomicobject.com/2014/12/01/program-ios-unwind-segue/
代码 VC #2:
// action func wired to button, fires perfectly
func unwind(seg:UIStoryboardSegue!) {
self.performSegueWithIdentifier("unwind", sender: self)
}
【问题讨论】:
-
你能把你在vc1里的代码和vc2里的代码展示一下吗?
-
没什么大不了的。上述两个函数都能完美触发,并使用我使用的确切 segue 名称跟踪打印语句。 :( V2 中唯一的代码是根本不会触发的 viewDidLoad 函数。
-
你没有实现
performSegueWithIdentifier;这是由 UIViewController 实现的。带有 UIstoryboardSegue 参数的 IBActionMethod 应该在 VC1 中(它有一个空实现)。您在按钮处理程序方法中调用self.performSegueWithIdentifier,如果您不使用情节提要,则不需要@IBAction -
好吧,我尽我所能尝试了,但现在它抛出了大量错误,因为缺乏对 VC 的 segue 分配的识别。据我了解,展开方法是我将一个 segue 排队到 vc2 的出口以简单地“离开”舞台,从而返回堆栈中的下一个 VC,即 VC1。我只使用了 VC2 中的 performSegueWithIdentifier 来追踪 segue 名称。我删除了 IBAction 前缀。
-
使用 unwind segue 进行演示,
标签: ios swift unwind-segue