我们知道通过
present
和
dismiss
方法可以进行页面(
ViewController
)跳转。其中
present
是加载新的模态视图,而
dismiss
是退出当前视图,回到上一个视图。
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_1430.html
但有时我们并不想要一级一级地往回跳,比如需要跨级跳转,或者直接跳回到根页面上。下面通过样例分别进行演示。
一、连续dissmiss两个视图
比如下面样例,我们在
C页面中想要直接跳回到
A页面。
代码如下:
1
|
self
.presentingViewController?.presentingViewController?.dismiss(animated:
true
, completion:
nil
)
|
二、直接跳回到根视图
比如下面样例,我们在 F页面上想直接跳回到最底层页面 A。有两种实现方法。
1,循环调用 presentingViewController 获取根VC,再dissmiss
2,直接通过 window.rootViewController 获取根VC,再dissmiss
1
2
3
4
5
6
7
|
//获取根VC
var
rootVC =
self
.presentingViewController
while
let
parent = rootVC?.presentingViewController {
rootVC = parent
}
//释放所有下级视图
rootVC?.dismiss(animated:
true
, completion:
nil
)
|
2,直接通过 window.rootViewController 获取根VC,再dissmiss
1
|
self
.view.window?.rootViewController?.dismiss(animated:
true
, completion:
nil
)
|
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_1430.html