2017-08-25 98 views
0

我想創建一個從DetailViewcontroller到SecondViewcontroller的Unwind segue。正確執行UnwindSegue

我已經創建了一個IBAction爲像這樣的可通過塞格斯截獲:

@IBAction func segueToSecondVC(sender: UIStoryboardSegue) { 
    print("segue intercepted by IBAction segueToSecondVC") 
} 

一個置於它在接收器的ViewController(secondViewController)。

然後我轉到Detailviewcontroller並點擊viewcontroller(exit)頂部的第三個圖形,點擊事件列表中出現的segueToSecondVC IBAction並將它拖入「返回」按鈕(放置在Detailviewcontroller中)以將按鈕關聯到事件。 通過這種方式,按鈕應該與事件連接,並且應該用自動隱藏塞恩回到第二個VC。

但它不工作,模擬器崩潰,我重定向到Xcode的編輯器中的appdelegate一個錯誤,即「主題1:信號SIGABRT」 我不知道爲什麼它不工作,任何人可以幫助我嗎?

回答

0

可以使用開卷這樣的:

@IBAction func prepareForUnwind(segue: UIStoryboardSegue){} 


@IBAction func closePressed(_ sender: Any) { 
     performSegue(withIdentifier: "unwindToAnotherVC", sender: nil) 
    } 

好的規則,就是名字添加所有塞格斯常量文件: 創建快捷文件

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) 
     } 
+0

我從你的回答中認爲第一個IBAction應該在接收者ViewController中,並且DetailViewController中的第二個IBAction。 我試圖使用出現在每個viewcontroller頂部的退出模式,而不使用「真正的」segue。我試圖使用viewController的退出模式將按鈕TURN BACK與secondViewController中創建的事件進行匹配,你能幫助我嗎? – Mike