获取当前展示Controller

extension UIViewController {
   /// 遍历寻找当前VC
   @objc var currentTopViewController: UIViewController {
        if let presentedVC = presentedViewController {
            return presentedVC.currentTopViewController
        }
        switch self {
        case let tabVC as UITabBarController:
            return tabVC.selectedViewController?.currentTopViewController ?? self

        case let navVC as UINavigationController:
            return navVC.topViewController?.currentTopViewController ?? self
        default:
            return self
        }
    }
}

/// 当前展示VC
var TopViewController:UIViewController? {
    UIApplication.shared.delegate?.window??.rootViewController?.currentTopViewController
}

更多推荐