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:是];但它不起作用......
怎么做......?
谢谢你..
答案 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 ,但对于你的浅层视图控制器,这应该没问题(我试过这个并且它有效)。