2013-04-07 72 views
7

我有一個UIViewController,它具有一個按鈕,可以將UIViewController作爲表單工作表執行模式切換。在表單上是一個取消按鈕,展開後退到原來的UIViewController。這似乎很高興地工作,並駁回表格。iOS展開Segue在嵌入導航控制器時停止工作

只要我選擇原始UIViewController並選擇XCode中的選項將其嵌入到導航控制器中,展開的漸變看起來不再有效,並且模態表單將不再取消。

我確定有一個簡單的解釋,但它目前回避我,所以任何想法歡迎。

謝謝。

回答

13

我不知道你爲什麼會看到你所看到的行爲,我也看到了。它適用於頁面表單和表單表單,但不適用於全屏。然而,放鬆繼續仍然在調用您放入原始控制器(連接放鬆繼續的那個)的方法。所以,你需要做的就是把一條線在該方法:

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

是的,你是對的,那是行得通的......很奇怪的行爲雖然正確,因爲它適用於全屏幕的罰款嗎?謝謝。 – Darren 2013-04-07 17:25:07

+0

@Darren,是的,這對我來說似乎是一個錯誤。我找不到任何可能表明這是預期行爲的文檔。 – rdelmar 2013-04-07 17:29:54

+2

我在ipad視網膜模擬器上也看到了這一點。國際海事組織這是一個錯誤 – Sam 2015-04-27 10:42:06

0

這已經回答了,但上面沒有給我的完整的解決方案,所以我想我會分享我的。

對我來說,放鬆方法從來沒有被調用,所以我不能做上面描述的。相反,我用IBAction製作了一個簡單的按鈕並將其命名。 Swift示例如下:

@IBAction func cancelToRecipeController() { 
    self.dismissViewControllerAnimated(true, completion: nil) 
    print("cancel to recipe controller ran") 
} 

感謝@rdelmar上面的方法調用!

(這是適用於iOS 9加)

0
self.dismissViewControllerAnimated(true, completion: nil) 

「開除」 並沒有爲我工作,但popToRoot效果很好。

[self.navigationController popToRootViewControllerAnimated:YES];