如何从多个视图控制器中的最后一个View控制器移动到第一个viewController

时间:2010-06-23 21:54:31

标签: iphone viewcontroller

Hii ...我是iPhone编程的新手..可以请任何人帮我... !! 我有多个viewControllers..in第一个ViewController叫做HomeViewController我调用了方法[self presentModalViewController:aboutViewController animated:YES];在一个IBAction中,aboutButton转移到AboutViewController 在AboutViewController中我调用了方法[self presentModalViewController:ContactUsViewController animated:YES];移动到那个视图控制器和另一个方法[self dismissModalViewControllerAnimated:YES];回到HomeViewController。

在第3个,ContactUSViewController我调用了方法[self dismissModalViewControllerAnimated:YES];回到AboutViewController ..我想从这里直接转到HomeViewController(ContactUsViewController).i使用[self presentModalViewController:homeViewController animated:是];但它不起作用......

怎么做......?

谢谢你..

1 个答案:

答案 0 :(得分:3)

根据 dismissModalViewControllerAnimated doco

  

如果你提出几种模态视图   控制器连续,因此   建立一堆模态视图   控制器,调用此方法   查看控制器在堆栈中较低   驳回其直接的儿童观点   控制器和所有视图控制器   在堆栈上面的那个孩子。什么时候   发生这种情况,只有最顶层的视图   以动画的方式被驳回;   任何中间视图控制器   只是从堆栈中删除。

因此,从 ContactUsViewController 中,您需要在 HomeViewController 上调用 dismissViewControllerAnimated 。您可以通过 parentViewController 属性访问该视图控制器。因此, ContactUsViewController 的dismissAction中的代码是:

- (IBAction)dismissAction:(id)sender
{
    // get your parent (ie AboutViewController)
    UIViewController * parent = self.parentViewController;

    // get its parent (ie HomeViewController)
    [parent.parentViewController dismissModalViewControllerAnimated:YES];
}

可能有一种更好的方式来访问你的 HomeViewController ,但对于你的浅层视图控制器,这应该没问题(我试过这个并且它有效)。