2017-05-26 49 views
0

我有一個很多(36)按鈕的視圖控制器,我希望這些按鈕中的每一個按照先前設置的變量延續到特定的視圖控制器在節目中。換句話說,任何按鈕都可能根據發送給包含按鈕的視圖控制器的變量,轉到15個不同的視圖控制器...如何以編程方式從一個按鈕seque到多個視圖控制器

我想我可以使這項工作,如果我點擊並拖動每個按鈕到每viewcontroller ...但它似乎愚蠢和凌亂。

我試圖做這樣的事情:如果

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if variable == "Whatever" { 

    let send = segue.destination as! AViewController 
     send.variablesent = (sender as! UIButton).title(for: .normal)!} 
} 

但這只是我的作品點擊,並在故事板按鈕拖動到「AViewController」。

任何幫助表示讚賞,謝謝!

+1

使用帶有標籤的每個按鈕。 &你可以用sender.tag標識每一個。 – Jack

回答

2

對於您可以從賽格瑞到SourceViewController代替DestinationViewControllerButtonController,之後當您在按鈕動作叫perfromSegue然後通過按鈕引用作爲senderperfromSegue通話。

@IBAction func buttonAction(_ sender: UIButton) { 
    self.performSegue(withIdentifier: "segueIdentifier", sender: sender) 
} 

現在prepareForSegue投發件人UIButton,並根據其設置標題。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if variable == "Whatever" { 
     let send = segue.destination as! AViewController 
     if let button = sender as? UIButton { 
      send.variablesent = button.titleLabel?.text ?? "Default value" 
     } 
    } 
} 
+0

感謝您的迴應!我試圖弄清楚「segueIdentifier」應該是什麼,以及如何從同一個按鈕到多個視圖控制器。它還沒有點擊我。任何方向?謝謝! – tfcamp

+0

我對這一切都很陌生,並沒有足夠的背景知識來理解你的答案。現在,我明白了你的答案。這是一個有用的指南,以連接我不明白的:https://stackoverflow.com/a/31086536/7729572 – tfcamp

+0

歡迎隊友:) –

相關問題