2012-04-18 61 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];。 和你完成了..(很容易,如果你知道代表团。)