SWIFT 获取当前显示的ViewController

2020-04-06  本文已影响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

    }

上一篇下一篇

猜你喜欢

热点阅读