如果您还没有找到合适的解决方案,我想出了最简单的解决方案。您可以使用 UINavigationController 来保存您尝试以模态方式显示的 2 个嵌套视图控制器。
在用于显示模态视图的函数中,您可以执行以下操作:
- (IBAction)showView3
{
ViewController2 *new2 = [[ViewController2 alloc] init];
ViewController3 *new3 = [[ViewController3 alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:new2];
nav.navigationBarHidden = YES;
[nav pushViewController:new3 animated:NO];
[self presentModalViewController:nav animated:YES];
}
然后在 ViewController3 中运行以将其关闭:
[self.navigationController popViewControllerAnimated:YES];
而 ViewController2 中的一个将具有:
[self dismissModalViewControllerAnimated:YES];
我能看到的唯一问题是美学,因为默认情况下,从 view3 到 view2 的过渡是水平动画,但从 view2 到 view1 的过渡是垂直的。您当然也可以更改它以使它们全部水平,或全部垂直,或者您想要的任何方式。