IOS:closures两个viewController

我有三个viewController

第一,第二和第三

从二到开第三我用

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

现在我想从第三个回到第一个; 那么我在viewDidAppear中设置第二个这样的代码:

 [self dismissModalViewControllerAnimated:NO]; 

但1秒钟,我看到第二,我不想看…我该怎么办?

您需要先closures第三个视图控制器,然后再closures第二个Viewcontroller。 当你想去第一个视图控制器时,请执行以下代码。

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

第三种模式观点如何被首先解雇? 也许通过用户触摸“完成”button? 如果是这样,它是在button的处理程序,你想解雇这两个。

你可以解雇这两个:

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

发生这种情况时,视图出现之前,每次都会调用viewDidAppear,所以一旦它出现,你将它closures,并且它就会消失。

我不认为你想要做什么可以实现与modalViewControllers …而是使用navigationController并不断增加您的viewcontrollers到堆栈上,当你想要转到第一个视图控制器只是调用

  [self.navigationController popToRootViewControllerAnimated:YES]; 

EDIT

只是想到这个可以通过使用委托来实现..你让第二个委托第三个,然后你立即解散第三个委托给委托的消息。在这个消息中调用[self dismissModalViewControllerAnimated:NO]; ..你完成了..(如果你知道代表团,这很容易)