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
        }
    }
  • 相关阅读:
    这是另外一篇
    使用客户端写博客
    vim编码相关配置
    给eclipse装一些插件
    手机型号收集
    解决黑苹果与windows时区不一致
    记录一些在VPS上折腾的东西
    一个获取文件绝对路径的sh
    python批量GBK转UTF-8
    用NDK编译lua库
  • 原文地址:https://www.cnblogs.com/qingzZ/p/12509511.html
Copyright © 2011-2022 走看看