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

问题描述:

嗨...我是iPhone编程的新手......任何人都可以帮助我......请! 我有多个viewControllers ..在第一个ViewController调用HomeViewController我调用方法[self presentModalViewController:aboutViewController animated:YES];在一个IBAction约aboutButton移动到AboutViewController 和AboutViewController我调用方法[self presentModalViewController:ContactUsViewController animated:YES];移动到该视图控制器和一个更多的方法[self dismissModalViewControllerAnimated:YES];返回到HomeViewController。如何从多个视图控制器中的最后一个视图控制器移动到第一个视图控制器

第三,ContactUSViewController我调用方法[self dismissModalViewControllerAnimated:YES];回到AboutViewController..and我想从这里直接到HomeViewController(ContactUsViewController)。我用[self presentModalViewController:homeViewController animated :是];但它不工作...

如何做... ...?

感谢ü..

按照docodismissModalViewControllerAnimated

如果目前几个模式的看法 控制器在连续,从而 建设模式的看法 控制器的堆栈,调用此方法的视图控制器中的一个 低于 解除其直接子视图 控制器和所有视图控制器ollers 以上的孩子在堆栈上。当 发生这种情况时,只有最上面的视图 以动画形式被解雇; 任何中间视图控制器 只是从堆栈中删除。

所以从您的ContactUsViewController你需要调用HomeViewController dismissViewControllerAnimated。您可以通过parentViewController属性访问该视图控制器。所以你在dismissAction为ContactUsViewController代码:

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

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

有可能是让你HomeViewController一个更好的办法,但对于您的视图控制器的浅栈,这应该是很好(我试过这出来,它的工作)。

+0

@macharlarakesh如果您需要澄清这个答案的具体内容,请在此留言。 – RedBlueThing 2010-06-28 00:31:23

+0

是的,它的Cannonade ... !! 非常感谢你 – rockey 2010-06-29 20:00:30

+0

@macharlarakesh很高兴听到它:)。您可以通过点击左侧投票号码下方的“接受答案”勾号右方来指出答案是否有帮助。 – RedBlueThing 2010-06-30 00:51:30