美文网首页
SWIFT 获取当前显示的ViewController

SWIFT 获取当前显示的ViewController

作者: 花漾爱意 | 来源:发表于2020-04-06 11:46 被阅读0次

class public func getCurrentVc() -> UIViewController{

        let rootVc = UIApplication.shared.keyWindow?.rootViewController

        let currentVc =getCurrentVcFrom(rootVc!)

        return currentVc

    }

    class private func getCurrentVcFrom(_ rootVc:UIViewController) -> UIViewController{

        var currentVc:UIViewController

        var rootCtr = rootVc

        if (rootCtr.presentedViewController != nil) {

            rootCtr = rootVc.presentedViewController!

        }

        if rootVc.isKind(of:UITabBarController.classForCoder()) {

            currentVc = getCurrentVcFrom((rootVcas!UITabBarController).selectedViewController!)

        }else if rootVc.isKind(of:UINavigationController.classForCoder()){

            currentVc = getCurrentVcFrom((rootVcas!UINavigationController).visibleViewController!)

        }else{

            currentVc = rootCtr

        }

        return currentVc

    }

相关文章

网友评论

      本文标题:SWIFT 获取当前显示的ViewController

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