UIViewController * findBestVC(UIViewController *vc) {
if (vc.presentedViewController) {
return findBestVC(vc.presentedViewController);
} else if ([vc isKindOfClass:[UISplitViewController class]]) {
UISplitViewController *sp = (UISplitViewController *)vc;
return sp.viewControllers.count > ? findBestVC(sp.viewControllers.lastObject) : vc;
} else if ([vc isKindOfClass:[UINavigationController class]]) {
UINavigationController *na = (UINavigationController *)vc;
return na.viewControllers.count > ? findBestVC(na.topViewController) : vc;
} else if ([vc isKindOfClass:[UITabBarController class]]) {
UITabBarController *ta = (UITabBarController *)vc;
return ta.viewControllers.count > ? findBestVC(ta.selectedViewController) : vc;
}
return vc;
} UIViewController * currentVC() {
UIViewController *rootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
return findBestVC(rootVC);
}

只需要调用

UIViewController *VC = currentVC();

获取 当前显示的 UIViewController的更多相关文章

  1. visibleViewController和topViewController 获取当前显示的页面

    原文:http://blog.sina.com.cn/s/blog_881ed8500102vo38.html UINavigationController 中有visibleViewControll ...

  2. Android相机、相册获取图片显示并保存到SD卡

    Android相机.相册获取图片显示并保存到SD卡 [复制链接]   电梯直达 楼主    发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图  本帖最后由 happy小妖同学 ...

  3. Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

    前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...

  4. js获取元素显示隐藏的当前状态

    js获取元素显示隐藏的当前状态 // CSS var display = $("."+cls).css("display"); if(display == &q ...

  5. js 获取浏览器显示内容的宽度和高度

      js获取浏览器显示内容的宽度和高度 CreateTime--2017年7月10日17:24:12Author:Marydon 1.获取浏览器屏幕显示d的网页宽度 /** * 得到浏览器显示的屏幕高 ...

  6. SpringMVC项目案例之---数据的获取与显示

    数据的获取与显示 (一)功能 1.对用户输入的数据进行获取 2.将获取的数据显示到页面 3.使用了SpringMVC技术的注解方式 4.使用了过滤器,处理中文乱码问题 5.在web.xml中设置了访问 ...

  7. 程序间获取ALV显示数据(读取ALV GRID上的数据)

    程序间获取ALV数据的两种方法: 方法1:通过修改SUBMIT的目标程序,把内表EXPORT到内存,SUBMIT后IMPORT ,该方法需要修改目标程序,可以任意设置目标程序的中断点: * Execu ...

  8. 获取当前AppDelegate 正在显示的UIViewController

    UIWindow+PazLabs.h (header file) #import <UIKit/UIKit.h> @interface UIWindow (PazLabs) - (UIVi ...

  9. NSClassFromString 和 遍历UIView获取她所在的UIViewController的tips

    一.NSClassFromString是NSObjCRuntime.h的方法 FOUNDATION_EXPORT Class __nullable NSClassFromString(NSString ...

随机推荐

  1. 10、springboot之集成druid

    在pom.xml中添加 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid< ...

  2. 最短路问题(dijkstral 算法)(优化待续)

    迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题.迪杰斯特拉算法主要特点是以起始点为中心向 ...

  3. 基于SSH框架下登录验证码模块的实现

    1.前端页面代码: 主要以jQuery的ajax异步请求实现. ... <script type="text/javascript" src="${pageCont ...

  4. JS判断两个数是否能除尽

    function judgeDivisor(m, n) { var num = {}; var i = 0; var x = parseInt(m / n); m = m % n; var resul ...

  5. CNN中卷积过程中padding的使用

    1.podding='SAME'时,全0填充.     2.padding=“VALID”,不使用全0填充      

  6. 旋转/非旋转treap的简单操作

    treap(树堆) 是在二叉搜索树的基础上,通过维护随机附加域,使其满足堆性质,从而使树相对平衡的二叉树: 为什么可以这样呢? 因为在维护堆的时候可以同时保证搜索树的性质: (比如当一棵树的一个域满足 ...

  7. jquery特效:无缝向上循环滚动列表

    效果呈现 整个列表间隔设定的时间向上移动一个item的高度 html结构: <div class="slide-title"> <span>title1&l ...

  8. 04.CSS选择器-->相邻、通用兄弟选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. [HttpException (0x80004005): 应用程序已预编译,因此不允许使用目录“/App_Code/”。]

    删除网站下的PrecompiledApp.config文件即可.

  10. Android沉浸式状态栏

    private void initWindows() { Window window = getWindow(); int color = getResources().getColor(androi ...