我正在尝试创建一个Unwind segue,它将从DetailViewcontroller带到SecondViewcontroller。
我已经创建了一个类似这样的IBAction,可以被Segues拦截:
@IBAction func segueToSecondVC(sender: UIStoryboardSegue) {
print("segue intercepted by IBAction segueToSecondVC")
}
将其放置在接收器的ViewController(secondViewController)中。
然后,我移到Detailviewcontroller并单击视图控制器顶部的第三个图形(退出),单击到出现在事件列表中的segueToSecondVC IBAction并将其拖动到按钮“ TURN BACK”(放置在Detailviewcontroller中)为了将按钮关联到事件。
通过这种方式,按钮应与事件连接,并应通过自动的“隐藏Segue”功能返回第二个VC。
但是它不起作用,模拟器崩溃,我被重定向到xCode编辑器,并且Appdelegate中出现错误,提示“线程1:信号SIGABRT”
我不知道为什么它不起作用,有人可以帮助我吗?
最佳答案
您可以这样使用Unwind:
@IBAction func prepareForUnwind(segue: UIStoryboardSegue){}
@IBAction func closePressed(_ sender: Any) {
performSegue(withIdentifier: "unwindToAnotherVC", sender: nil)
}
好的规则是将所有segues名称添加到常量文件中:
创建快速文件
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)
}