0

我有一個故事板,它有一個顯示其他模式視圖控制器的起始視圖控制器。展開順序不被觸發

說視圖控制器A是startingViewController,而視圖控制器B是模態呈現的視圖控制器。

如何從B中的ViewController A(而不僅僅是位於ViewController B上的按鈕)將B從B展開回A?

按鈕的工作原理進行開卷SEGUE,但是當我嘗試執行它以編程方式使用

[self performSegueWithIdentifier:@"ReturnToStart" sender:self] 

出現錯誤:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<StartViewController: 0x1ed4b9b0>) has no segue with identifier 'ReturnToStart'' 

我不明白的是,開卷當我按下模式視圖控制器上的按鈕時,segue工作正常,但是當我試圖從另一個ViewController觸發它時(標識符在故事板中正確),segue就無法找到。

是否有任何方式從我的startingViewController訪問所有的segues或是我的結構從根本上錯誤?

回答

2

該segue「屬於」源View Controller,所以這就是爲什麼你得到該錯誤消息。 Segmentation旨在從源視圖控制器中調用。

如果你想從A解僱viewControllerB,不使用SEGUE,只需使用:

dismissViewControllerAnimated:completion: 
+1

謝謝,我認爲這在某種程度上都塞格斯可以通過包含在腳本的所有視圖控制器進行訪問。 – BigAl 2013-05-06 21:36:53

+2

謝謝。發現只有在Storyboard上連接了視圖控制器,才能使用'performSegueWithIdentifier'方法。如果你以編程方式實例化視圖,你需要使用它。 – inorganik 2014-08-12 22:38:23