zoukankan      html  css  js  c++  java
  • swift 获取当前显示的VC

    extension UIViewController {
        /// 获取当前显示的VC
        ///
        /// - Returns: 当前屏幕显示的VC
        class func getCurrentViewController() -> UIViewController?{
            // 获取当先显示的window
            var currentWindow = UIApplication.shared.keyWindow ?? UIWindow()
            if currentWindow.windowLevel != UIWindow.Level.normal {
                let windowArr = UIApplication.shared.windows
                for window in windowArr {
                    if window.windowLevel == UIWindow.Level.normal {
                        currentWindow = window
                        break
                    }
                }
            }
            return UIViewController.getNextXController(nextController: currentWindow.rootViewController)
        }
        
        private class func  getNextXController(nextController: UIViewController?) -> UIViewController? {
            if nextController == nil {
                return nil
            }else if nextController?.presentedViewController != nil {
                return UIViewController.getNextXController(nextController: nextController?.presentedViewController)
            }else if let tabbar = nextController as? UITabBarController {
                return UIViewController.getNextXController(nextController: tabbar.selectedViewController)
            }else if let nav = nextController as? UINavigationController {
                return UIViewController.getNextXController(nextController: nav.visibleViewController)
            }
            return nextController
        }
    }
  • 相关阅读:
    redis分布式锁
    pod资源清单
    zookeeper
    [置顶]【WP】 Writeup for SJTU-CTF ,被同级大佬和学长联合虐爆
    魔术师猜数【更优解】
    数学基础之线代
    向量是什么?
    矩阵与线性变换
    线性组合、张成的空间、基
    线性代数的本质
  • 原文地址:https://www.cnblogs.com/qingzZ/p/12509511.html
Copyright © 2011-2022 走看看