正确执行UnwindSegue

时间:2017-08-25 11:13:03

标签: swift exit uistoryboardsegue unwind-segue

我正在尝试创建一个从DetailViewcontroller到SecondViewcontroller的Unwind segue。

我创建了一个像Segues一样可以拦截的IBAction:

@IBAction func segueToSecondVC(sender: UIStoryboardSegue) {
    print("segue intercepted by IBAction segueToSecondVC")
}

将它放在接收器ViewController(secondViewController)中。

然后我移动到Detailviewcontroller并单击viewcontroller(exit)顶部的第三个图,单击事件列表中出现的segueToSecondVC IBAction并将其拖入按钮" TURN BACK&# 34;(放置在Detailviewcontroller中)以便将按钮与事件相关联。 通过这种方式,按钮应与事件连接,并应使用自动隐藏的Segue返回到第二个VC。

但是它不起作用,模拟器崩溃,我被重定向到xCode编辑器,Appdelegate中出现错误,说明"线程1:信号SIGABRT" 我不知道为什么它不起作用,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

你可以像这样使用Unwind:

 @IBAction func prepareForUnwind(segue: UIStoryboardSegue){}


@IBAction func closePressed(_ sender: Any) {
        performSegue(withIdentifier: "unwindToAnotherVC", sender: nil)
    }

好的规则,就是将所有segue名称添加到常量文件中: 创建swift文件

import Foundation

// Segues
let TO_LOGIN = "toLogin"
let TO_CREATE_ACCOUNT = "toCreateAccount"
let UNWIND = "unwindToChannel"

然后在

中使用UNWIND
@IBAction func closePressed(_ sender: Any) {
            performSegue(withIdentifier: UNWIND, sender: nil)
        }