呈现视图控制器堆栈

Presenting stack of view controllers

有没有办法同时显示两个视图控制器?我的情况如下:

从我的根视图控制器 (View 0),我想以模式方式呈现一个视图 (View 1),当关闭该视图时,新视图 (View 2) 应该在它下面。

视图层次结构如下所示:

- View 1
- View 2
- View 0 (root)

我尝试在视图 1 的 -viewDidAppear 中不带动画地展示它。不过,这似乎在展示动画完成之前不会被调用。在 -viewDidAppear 之前显示它是行不通的,因为该视图还不在 window 层次结构中。

有什么可以接受的方法吗?

在显示另一个 UIViewController 的同时显示一个 UIViewController 如果没有稳定性问题是不可能的。作为用户体验方面的考虑,我认为这种方法也不是最好的。当他们关闭视图控制器时,他们应该知道会发生什么。

如果您不习惯使用 presentViewController: 并且您有一个 UINavigationController,该 class 的实例有一个方法 setViewControllers:animated: 可以让您按两个UIViewControllers 到堆栈上。用户返回时将能够看到他们得到了什么(后面的项目)。

否则,您可以在 VC 上展示,并在成功后立即展示另一个。这是做你想做的最安全的选择。