使用展开向后传递数据到 segue
与 segue 相比,它允许你从当前视图控制器向前传递数据到目标视图控制器:
(VC1) - > (VC2)
使用展开可以执行相反的操作,将数据从目标或当前视图控制器传递到其呈现的视图控制器:
(VC1) < - (VC2)
注意 :请注意,使用展开可以先传递数据,然后将取消分配当前视图控制器(VC2)。
这是怎么做的:
首先,你需要在呈现视图控制器(VC1)上添加以下声明,VC1 是我们要将数据传递到的视图控制器:
@IBAction func unwindToPresentingViewController(segue:UIStoryboardSegue)
重要的是使用前缀 unwind
,这通知Xcode 这是一个展开方法,让你可以选择在故事板中使用它。
之后你将需要实现该方法,它看起来几乎与实际的 segue 相同:
@IBAction func unwindToPresentingViewController(segue:UIStoryboardSegue)
{
if segue.identifier == "YourCustomIdentifer"
{
if let VC2 = segue.sourceViewController as? VC2
{
// Your custom code in here to access VC2 class member
}
现在你有 2 个选项来调用展开调用:
- 你可以通过硬编码调用:
self.performSegueWithIdentifier("YourCustomIdentifier", sender: self)
,只要你愿意,它就会为你放松。 - 你可以使用
storyboard
将 unwind 方法链接到Exit
对象:ctrl +将要调用 unwind 方法的按钮拖动到Exit
对象:
发布,你可以选择自定义展开方法: