Swift - 获取当前的ViewController


转自:http://www.jianshu.com/p/30b341d5edfa


// 获取当前显示的ViewController

extension UIViewController
{
    // 获取当前显示的ViewController
    class func currentViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController?
    {
        if let nav = base as? UINavigationController
        {
             return currentViewController(base: nav.visibleViewController)
        }
        if let tab = base as? UITabBarController
        {
             return currentViewController(base: tab.selectedViewController)
        }
        if let presented = base?.presentedViewController
        {
             return currentViewController(base: presented)
        }
        return base
    }
}


获取当前VC:

let theViewControllerYouSee = UIViewController.currentViewController()

PS:转载仅为了学习使用,如有不妥,请联系,即删。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 此文章已于 2020.06.19 更新,基于 Swift 5.2 在项目中,我们经常需要获取当前所看到的View ...
    Hesse_Huang阅读 11,089评论 2 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,460评论 25 708
  • 最近自己写的简书文章太多了,导致很难找到之前写的文章。 于是,我想整理一篇目录,使用搜索快捷键:ctrl+F,即可...
    张云钱阅读 1,654评论 0 1
  • 最近自己写的简书文章太多了,导致很难找到之前写的文章。 于是,我想整理一篇目录,使用搜索快捷键:ctrl+F,即可...
    张云钱阅读 1,170评论 0 1
  • 契诃夫《装在套子里的人》,塑造了一个恐惧变革的人,他的口头禅是“千万别闹出什么乱子来”。 我也不喜欢闹出乱子,每天...
    豆子121阅读 583评论 10 12