Swift开发---dismiss到指定的控制器

2019-07-12  本文已影响0人  闲云悠鹤蝶恋舞

需求:

在项目中经常会用到方法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)
上一篇下一篇

猜你喜欢

热点阅读