使用展開向後傳遞資料到 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 個選項來呼叫展開呼叫:

  1. 你可以通過硬編碼呼叫:self.performSegueWithIdentifier("YourCustomIdentifier", sender: self),只要你願意,它就會為你放鬆。
  2. 你可以使用 storyboard 將 unwind 方法連結到 Exit 物件:ctrl +將要呼叫 unwind 方法的按鈕拖動到 Exit 物件:

StackOverflow 文件

釋出,你可以選擇自定義展開方法:

StackOverflow 文件