在当前视图控制器下面显示新视图控制器

时间:2015-05-07 07:27:30

标签: ios animation uiviewcontroller

我正在尝试呈现一个新的视图控制器,该视图控制器通过呈现的视图控制器被解除并且呈现的视图控制器“已经”落后于呈现的视图控制器,这与呈现模态视图控制器的方式非常相似/驳回。

有没有办法通过呈现视图控制器来实现这一点,或者我是否必须先预先显示视图控制器然后将其隐藏在下面然后关闭呈现视图控制器?

1 个答案:

答案 0 :(得分:2)

您可以通过将第二个视图控制器“隐藏”在要显示的第一个视图控制器下面来实现此目的。 UINavigationController免费为您提供所需的一切。

使用视图控制器中显示模态视图的以下(伪)代码:

FirstVC *first = [[FirstVC alloc] init]; // this VC is shown first
SecondVC *second = [[FirstVC alloc] init]; // this VC that hides beneath the other

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:second];
[nav pushViewController:first animated:NO];

[self presentViewController:nav animated:YES completion:nil];

然后,无论何时想要关闭第一个视图控制器,都可以调用:

[self.navigationController popViewControllerAnimated:YES];

请注意,您仍然必须关闭模态视图。