我有一个Swift应用程序,其中包含一个带有三个不同视图控制器的情节提要。用户可以通过两种不同的方式在这些视图控制器之间进行转换:
VC1-> VC2-> VC3
OR
VC1-> VC3
在VC3中,用户可以按下“后退”按钮,该按钮以编程方式使用以下代码退回到VC1:
self.performSegue(withIdentifier: "UnwindToVC1", sender: self)
该解散键与在情节提要中创建的“解散键”相关联,该解散键在VC1中解散到以下功能:
@IBAction func unwindToVC1(segue: UIStoryboardSegue) {
print("Unwind")
}
如果用户直接从VC1转到VC3,则应用正确解开,将用户返回VC1并显示“解开”。
但是,如果用户从VC1切换到VC2,再到VC3,则展开仍会将用户返回到VC1,但是从不调用unwindToVC1函数,也从不打印“ Unwind”。
为什么相同的放松动作表现不一致?有没有办法确保始终调用VC1中的unwind函数?