1

嗨...我是 iPhone 编程的新手...有人可以帮帮我吗...!!我有多个 viewControllers..在第一个 ViewController 中调用 HomeViewController 我调用了方法 [self presentModalViewController:aboutViewController animated:YES]; 在 aboutButton 的 IBAction 中移动到 AboutViewController 并在 AboutViewController 中我调用了方法 [self presentModalViewController:ContactUsViewController animated:YES]; 移动到该视图控制器和另一种方法 [self dismissModalViewControllerAnimated:YES]; 回到 HomeViewController。

在第三,ContactUSViewController我调用了方法[selfdismissModalViewControllerAnimated:YES];回到AboutViewController..我想从这里直接进入HomeViewController(ContactUsViewController)。我使用了[self presentModalViewController:homeViewControlleranimated:YES];但它不工作......

怎么做...?

感谢你..

4

1 回答 1

3

根据dismissModalViewControllerAnimated文档

如果您连续呈现多个模态视图控制器,从而构建一个模态视图控制器堆栈,则在堆栈中较低的视图控制器上调用此方法会关闭其直接子视图控制器以及堆栈上该子视图控制器上方的所有视图控制器。发生这种情况时,只有最顶层的视图会以动画方式消失;任何中间视图控制器都简单地从堆栈中删除。

因此,您需要从您的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];
}

There might be a better way of getting to your HomeViewController, but for your shallow stack of view controllers, this should be fine (I tried this out and it worked).

于 2010-06-24T01:52:20.917 回答