使用展開向後傳遞資料到 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
物件:
釋出,你可以選擇自定義展開方法: