2010-07-02 42 views
3

我的應用程序從主視圖呈現模態視圖(A),讓用戶進行選擇。當他們做出選擇時,它會在第一個(A)的頂部打開第二個模態視圖(B)。關閉多個模態視圖

當我完成第二個模態視圖(B)並想解散它時,我想在不再同時關閉第一個(A)和第二個(B)的同時需要用戶返回到那個(A)。

我想出的唯一事情是:

[self.parentViewController.parentViewController.parentViewController. dismissModalViewControllerAnimated:YES]; 

它的工作原理,但它只是看起來不正確。這是可以做的還是有一個更可接受的方式來做到這一點?

回答

3

我不認爲你的方式是錯的。它是什麼Apple documentation推薦:

如果您連續呈現幾個模式視圖控制器,並因此建立一個模式視圖控制器的堆棧,調用此視圖控制器上的方法在較低的視圖控制器取消其立即子視圖控制器和所有視圖控制器上方的那個孩子。當發生這種情況時,只有最頂級的觀點纔會以動畫形式被解僱;任何中間視圖控制器都可以簡單地從堆棧中移除。最頂層的視圖使用其模式轉換樣式被解散,這可能與堆棧中較低視圖控制器使用的樣式不同。

+0

好的,謝謝。把這麼多的parentViewController語句串起來使它工作起來看起來很奇怪。 – John 2010-07-02 04:36:37

0
(UIApplication.sharedApplication().delegate! as! AppDelegate).navigationController?.viewControllers.first?.dismissViewControllerAnimated(true, completion: nil)