2014-10-20 49 views
21

在斯威夫特我programmaticaly使用創造了一個按鈕:如何創建一個可以從編程創建的按鈕調用的segue?

var button = UIBarButtonItem(title: "Tableau", style: .Plain, target: self, action: "tabBarTableauClicked") 

我想,當用戶點擊該按鈕它改變viewControllers。 這裏是tabBarTableauClicked代碼:

func tabBarTableauClicked(){ 
    performSegueWithIdentifier("tableau", sender: self) 
} 

但它顯然不工作,因爲沒有與所謂的「畫面」的標識符沒有SEGUE。

而且我不能使用Ctrl +單擊按鈕並拖動到第二個viewController創建一個segue,因爲該按鈕是以編程方式創建的而不是在Storyboard中創建的。

如何在Swift中以編程方式創建帶標識符的Segue?

+1

塞格斯不能在故事板之外建立。 http://stackoverflow.com/questions/9674685/creating-a-segue-programmatically – user3746428 2014-10-20 00:37:47

+0

你的第一個和第二個視圖控制器在故事板? – vacawama 2014-10-20 01:07:54

+0

是的,但它們只是按鈕不是 – 2014-10-20 01:08:59

回答

81

這裏是如何設置一個segue,以便它可以通過編程方式調用。從在第一視圖控制器向第二視圖控制器的ViewController圖標

  • 控制阻力。
  • 點擊SEGUE箭頭兩個視圖控制器之間,並在屬性檢查器右邊,給SEGUE標識符(畫面你的情況)。
  • 然後,您可以在代碼中觸發與performSegueWithIdentifier的繼續。

enter image description here

你可以閱讀更多關於設置和使用塞格斯here.

+0

我試過這個,但我仍然得到相同的「沒有標識符'someIdentifier'的錯誤'」錯誤... – SomeGuy 2016-02-13 15:32:14

+17

是不是這個問題的要點做它程序設計? – 2016-02-21 22:34:55

+3

@MarkLöwe,OP想要從他以編程方式創建的按鈕觸發一個segue。他錯誤地認爲由於該故事板中不存在該按鈕,因此無法連線。我向他展示了只要兩個VC都存在於Storyboard中,就可以連接Segue,然後以編程方式創建的按鈕可以觸發該Segue。我解決了他想要做的事情,如果不是他提出的問題。 – vacawama 2016-02-21 22:46:04

相關問題