2016-12-12 125 views
1

我想創建一個展開順序,帶我回到兩個viewControllers,我想我有一切設置正確,但它崩潰時沒有錯誤打印,當我執行segue ...爲什麼我的unwind segue崩潰我的應用程序?

這是我'已經做到:

在目的地的viewController,我們把它叫做VC1(堆棧底部)我創造了這個動作:

@IBAction func unwind(segue:UIStoryboardSegue){} 

在界面生成器我迷上了VC3(第三視圖控制器了)通過退出按鈕發送到展開順序,並將其命名爲「展開」。

我要求賽格瑞像這樣進行:

performSegue(withIdentifier: "unwind", sender: self) 

這裏是視圖控制器和原因請看標識符

http://imgur.com/a/gJPYQ

「刪除跳閘」按鈕調用SEGUE之後的所有其他邏輯已被照顧。

一旦被調用,我的應用程序崩潰,沒有錯誤消息,並顯示我的AppDelegate屏幕。這是怎麼回事?

+0

這種崩潰主要是由錯誤的標識符造成的。你確定你使用正確的標識符嗎? – Mohammadalijf

+0

你還在做關於prepareForSegue的任何事情嗎? – Mohammadalijf

+0

標識符也在故事板中「展開」。不,在prepareForSegue中沒有任何東西。 –

回答

-1

如果你推VC,你可以使用:

navigationController?.popToRootViewControllerAnimated(true) 
+0

我需要返回_two_ viewControllers。解散只能追溯到一個。 –

+0

對,我讀得太快了。但是如果你推了VC,你可以使用navigationController?.popToRootViewControllerAnimated(true)。 –

+0

它們以模態方式呈現。雖然好想...... –

-1

如果你有兩個VC的呈現模態,那麼你將需要解僱2個VC的模態。使用: dismiss(..., completion: { dismiss(..., completion: nil)

您目前的「放鬆」segue只是簡單地呈現原來的一個..也許你沒有正確設置標識符,或者你忽視了你的視圖層次結構。

+1

放卷不會「再次呈現原來的一個」。這將只是再次繼續執行根控制器。 –

相關問題