2017-08-15 42 views
1

當我按下按鈕時,我想啓動新的視圖控制器,我想將一些信息傳遞到新的視圖控制器。這是通過使用全局變量沒有任何segue方法來處理的。支持方法和他們的目標

但是,如果我使用segue方法,我必須使用哪一個?

performSegue()或shouldPerformSegue()

+0

您是否嘗試過'準備(for segue:sender:)'? – Tj3n

+0

第一個,第二個是委託方法。請閱讀https://developer.apple.com/documentation/uikit/uistoryboardsegue – vadian

+0

不,我聽說我們必須在preprare()方法 – Goktug

回答

1

你必須調用

func performSegue(withIdentifier identifier: String, 
      sender: Any?) 

以上方法將啓動您的賽格瑞,你可以把你的下一個視圖控制器。

您的信息

func shouldPerformSegue(withIdentifier identifier: String, 
       sender: Any?) -> Bool 

該方法將返回布爾值,這將指定是否執行SEGUE與否。你有控制器,你可以通過方法返回true/false來允許segue執行或不執行。

真正 - Segue公司是允許的,將被執行

- Segue公司是不允許的,將被中止。

如果您想覆蓋您在故事板中定義的任何segue並希望在運行時執行任何其他操作,則可以使用此方法。

2

你必須使用performSegue如果你想以編程方式啓動SEGUE。

使用shouldPerformSegue您可以添加額外的邏輯來決定是否發生啓動的segue真的應該發生或不發生。

最後在prepareForSegue你可以 - 顧名思義 - 準備segue(例如傳遞一些數據到目標視圖控制器)。