2015-06-21 45 views
2

因此,我有一個應用程序,您可以在第一個屏幕中選擇一個按鈕,然後根據您在第一個屏幕上選擇哪個按鈕將其引導至另一個屏幕。因爲我有這些可能的不同佈局,所以我不能只使用從一個按鈕到下一個視圖控制器的segue,因爲涉及中間屏幕。所以它是這樣的:將數據從一個視圖控制器傳遞到下一個無需快速編輯

1 ---> 2 ---> 3a || 3b || 3c || 3D等...

因此,您在第一個屏幕上的選擇決定了您的第三個屏幕的樣子。

所以相反,我想在第一個視圖中有一個與每個按鈕關聯的值,通過一個segue將它發送到第二個視圖,然後再次發送到第三個視圖並告訴它使用正確的segue基於與第一視圖相關聯的值的適當的第三視圖控制器。但我做不到這一點,因爲我無法設置第二個屏幕以適應第三個屏幕的所有可能的佈局......至少我認爲我不能。

底線問題:無論如何,在點擊一個沒有segue的按鈕之後去另一個視圖控制器,同時也將數據發送到下一個視圖控制器,而沒有segue存儲它?

請幫mehhh

回答

2

所以不是我想有在第一視圖中的每個按鈕 相關聯的價值,有它通過SEGUE發送到第二視圖, 然後再發送到第三個視圖並根據與第一個視圖關聯的值使用適當的第二個視圖控制器 。但我不能這樣做,因爲我不能設置第二個屏幕來屏蔽第三個屏幕的所有可能的佈局......至少在 我想我不能。

可以做這個與segues;你只需要正確連線。您可以通過控制從頂部的ViewController圖標拖動到下一個ViewController來創建它們,而不是將按鈕連接到按鈕。

segue from view controller icon

一旦你創建了這樣一個SEGUE,點擊所產生的SEGUE箭頭,並給它一個標識符在屬性檢查器(類似「segueToVC3a」)。

Putting in segue identifier

所以,你會從各個VC2向賽格瑞VC3a,VC2到VC3b等

在你第一次的viewController假設你決定的whereToGo值爲此多次和你傳遞到你的第二個viewController與一個segue。然後,在你的第二個的viewController,然後你可以做這樣的事情:

var identifier: String = "" 
switch whereToGo { 
    case "VC3a": identifier = "segueToVC3a" 
    case "VC3b": identifier = "segueToVC3b" 
    default: break 
} 

if identifier != "" { 
    performSegueWithIdentifer(identifier, sender: self) 
} 
+0

我沒有投下@vacawama!我正在投票,這非常簡單,我知道該怎麼做!非常感謝!! – KellysOnTop23

+0

謝謝@ KellysOnTop23!請點擊旁邊的複選標記以接受我的回答,將其變爲綠色。 – vacawama

3

按照以下步驟...

1:創建一個名爲Manager.swift一個單獨的文件,並把這個代碼在它...

//manager.swift 

    import Foundation 

    struct Manager { 

    static var messageText = String() 


    } 

2:按Shift + Command + K清理項目。

3:在設置MessageText中你要傳遞的數據的第一個視圖控制器...

Manager.messageText = self.dataToPass 

4:在第二個視圖控制器檢索數據和設置的內容添加到郵件文本。 ...

self.dataToReceive = Manager.messageText 

5:你的成績!

相關問題