呈现视图控制器堆栈
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 上展示,并在成功后立即展示另一个。这是做你想做的最安全的选择。
有没有办法同时显示两个视图控制器?我的情况如下:
从我的根视图控制器 (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 上展示,并在成功后立即展示另一个。这是做你想做的最安全的选择。