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
        }
    }
  • 相关阅读:
    MapReduce 运行流程概要
    HDFS 读写流程概要
    Hadoop源码分析22:dfsclient概要
    Hadoop源码分析22:dfsclient概要
    Matlab安装SVM/RF工具箱的办法
    最大似然估计、最大后验概率估计、贝叶斯公式的理解
    车牌识别
    BP神经网络
    SVM中核函数的理解
    数据库面试
  • 原文地址:https://www.cnblogs.com/qingzZ/p/12509511.html
Copyright © 2011-2022 走看看