美文网首页
Swift开发---dismiss到指定的控制器

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

作者: 闲云悠鹤蝶恋舞 | 来源:发表于2019-07-12 14:46 被阅读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)
    

    相关文章

      网友评论

          本文标题:Swift开发---dismiss到指定的控制器

          本文链接:https://www.haomeiwen.com/subject/tlgekctx.html