需求:
在项目中经常会用到方法open func dismiss(animated flag: Bool, completion: (() -> Void)? = nil)
,来dismiss掉控制器,但是需求要求dismiss到首页,而上面的方法只能一次dismiss到上一个控制器。
解决方法:
只需要调用下面的方法即可!!!
/// dismiss到指定的控制器
///
/// - Parameters:
/// - index: 指定的控制器序号,如:从vc1 present --> vc2 --> vc3 --> vc4,想从vc4直接dismiss到vc1,只需要传index=4即可
/// - vc: 当前控制器
func JJDismissViewController(index:Int,currentVC:UIViewController) {
var i = 0
var tempVC:UIViewController = currentVC
while tempVC.presentingViewController != nil {
i = i + 1
if i == index {
break
}
tempVC = tempVC.presentingViewController!
}
tempVC.dismiss(animated: true, completion: nil)
}
使用:
例如:从vc1 present --> vc2 --> vc3 --> vc4,想从vc4直接dismiss到vc1,只需要传index=4即可!!!
JJDismissViewController(index: 4, currentVC: self)
网友评论