2013-05-01 71 views
11

我有一個視圖控制器B被推送到根視圖控制器A的導航堆棧,並且此視圖控制器B需要顯示一個替代視圖,如果它模型處於特定狀態,所以它模態地呈現另一個視圖控制器C.當我關閉視圖控制器CI時,如果它也在導航堆棧上,也想彈出視圖控制器B.我想這樣做只有一個過渡。ios:如何解除模式視圖控制器,然後彈出推視圖控制器

任何想法?

+0

您是使用xib還是故事板來佈置視圖?這聽起來像你最好的選擇可能是在你的根視圖控制器中實例化第三視圖,然後將它們添加爲子視圖。這些可以被顯示或隱藏。這可以比提出和解除模態視圖更加靈活。 – ninehundredt 2013-05-01 01:50:39

+0

即時通訊使用故事板,我傾向於使用一個單獨的視圖控制器來顯示替代狀態,因爲蘋果文檔提到,如果你有一個可供選擇的界面來顯示,那麼它的價值將呈現爲一個單獨的視圖(它在討論獨立的景觀視圖)。我認爲我需要的實際UI變化會更容易通過單獨的視圖來實現,這在目前的視圖中是不會隱藏的,所以我會嘗試一下你的建議 – Heisenberg 2013-05-01 18:05:28

回答

18

在發佈的場景中,視圖控制器C的呈現視圖控制器實際上是導航控制器,因此您可以要求它彈出B,然後解散自己。此代碼是在視圖控制器C:

-(IBAction)goBackToA:(id)sender { 
    [(UINavigationController *)self.presentingViewController popViewControllerAnimated:NO]; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

如果您使用的是故事板,你可以做同樣的事情,與開卷賽格瑞跳直接回A。

+0

謝謝,給了我一些想法之後,我認爲我需要的可能更容易使用just一個視圖控制器,並根據模型狀態更改其子視圖,如果我需要使用2個獨立視圖控制器,我會嘗試您的方法 – Heisenberg 2013-05-01 18:06:44

+0

正是我需要的! – Nerrolken 2015-06-27 20:17:11

相關問題