2012-04-18 69 views
6

我有三個的viewControllerIOS:辭退2的viewController

第一,第二和第三

從第二次打開第三個我用

Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil]; 
[self presentModalViewController:third animated:YES]; 
[third release]; 

現在我想從第三到第一返回;然後我在viewDidAppear設置在第二驗證碼:

[self dismissModalViewControllerAnimated:NO]; 

但1秒鐘我看到第二個,我不想看它......我該怎麼辦?

+1

如何將第二個視圖添加到第一個視圖? – 2012-04-18 16:23:41

回答

15

你需要先關閉第三個視圖控制器,然後再關閉第二個Viewcontroller。當您想要轉到第一個視圖控制器時,請執行以下代碼。

-(void)goToFirstView{ 
     UIViewController *vc = [self parentViewController]; 
    //  UIViewController *vc = [self presentingViewController]; //ios 5 or later 
     [self dismissModalViewControllerAnimated:NO]; 
     [vc dismissModalViewControllerAnimated:YES]; 
} 
4

第三模態視圖如何被首先解僱?也許通過用戶觸摸'完成'按鈕?如果是這樣,它是在你想要解僱這兩個按鈕的處理程序中。

你可以認爲這兩個爲:視圖出現之前,所以只要它出現您關閉它,它消失

[self dismissModalViewControllerAnimated: YES]; 
[self.presentingViewController dismissModalViewControllerAnimated: NO]; 
+0

我認爲**動畫**參數應該是NO,然後是YES,請參閱rakeshNS的回答 – onmyway133 2013-10-23 09:06:48

0

出現這種情況怎麼把viewDidAppear被稱爲每次..

我不認爲你正在嘗試做什麼可以實現與modalViewControllers ... 而不是使用導航控制器,並不斷增加您的viewcontrollers到堆棧,當你想轉到第一個視圖控制器只是打電話

[self.navigationController popToRootViewControllerAnimated:YES];  

EDIT

只是覺得它這可以通過使用授權來實現的..你做第二第三的代表,一旦你關閉該thirdviecontroller發送委託一個message.In此消息調用[self dismissModalViewControllerAnimated:NO];。 和你完成了..(很容易,如果你知道代表團。)