获取 当前显示的 UIViewController

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 > 0 ? findBestVC(sp.viewControllers.lastObject) : vc;
    } else if ([vc isKindOfClass:[UINavigationController class]]) {
        UINavigationController *na = (UINavigationController *)vc;
        return na.viewControllers.count > 0 ? findBestVC(na.topViewController) : vc;
    } else if ([vc isKindOfClass:[UITabBarController class]]) {
        UITabBarController *ta = (UITabBarController *)vc;
        return ta.viewControllers.count > 0 ? findBestVC(ta.selectedViewController) : vc;
    }
    return vc;
}

UIViewController * currentVC() {
    UIViewController *rootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
    return findBestVC(rootVC);
}

只需要调用

UIViewController *VC = currentVC();
时间: 2024-08-05 19:16:16

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

如何获取当前显示其的分辨率

如何获取当前显示其的分辨率:在很多应用中,需要根据不同的显示器分辨率来调整不同的效果,这个时候获取当前浏览器的分辨率是个关键,下面就简单介绍一下如何实现此功能,代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="aut

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

程序间获取ALV数据的两种方法: 方法1:通过修改SUBMIT的目标程序,把内表EXPORT到内存,SUBMIT后IMPORT ,该方法需要修改目标程序,可以任意设置目标程序的中断点: * Execute transaction IA09 to get all Functional Location Tasklists SUBMIT riplko10 WITH SELECTION-TABLE lt_selscreen WITH pn_iflo = abap_true "Select Func L

Android 获取并显示远程图片 Picasso框架的使用(一)

转载请注明出处:明桑Android 在Android开发中,常需要从远程获取图片并显示在客户端,当然我们可以使用原生HttpUrlConnection和AsyncTask等操作来完成,但并不推荐,因为这样不仅需要我们编写大量的代码,还需要处理缓存和下载管理等,最好自己封装成库或者采用第三方库: Picasso:A Powerful Image Downloading and Caching Library for Android 根据名字就知道它是跟什么相关了(Picasso:毕加索)它的基本操

Android 获取并显示远程图片 Picasso框架的使用(二)

转载请注明出处:明桑Android 在上篇文章中介绍了Picasso的基本用法,这篇文章作为以上的练习: 本文代码github地址:UsePicasso 实现效果:(动图请耐心加载) 需要的知识点 了解Picasso框架的使用:Android 获取并显示远程图片 Picasso框架的使用(一) 知道如何自定义GridView 我们需要编写两个布局文件:activity_gridview.xml activity_main.xml 以及ImageAdapter类.GridImageActivity

封装函数getClient获取当前显示区域的大小,即clientWidth和clientHeight

1 //获取当前显示区域的大小,即clientWidth和clientHeight 2 function getClient(){ 3 var isXHTML; //初始值默认 符合DOM的xHTML标准 4 var clientWidth,clientHeight; 5 if(document.documentElement.clientWidth = null || document.documentElement.clientWidth <=0){ 6 if(document.body.c

JSP使用EL获取并显示用户注册信息。

使用EL获取并显示用户注册信息. <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030

模拟物理按键;获取当前显示的Activity名

//////////模拟按键方法 private void sendKeyCode(final int keyCode){ new Thread(){ public void run(){ try { Instrumentation inst = new Instrumentation(); inst.sendKeyDownUpSync(keyCode); /////////以下方法在4.0或是3.0之前可以用 // KeyEvent k = new KeyEvent(KeyEvent.ACTI

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

前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域的方法,我目前想到的只有以下两种方法: 1.通过 JavaScript  获取浏览器显示区域的大小 2.通过 WebDriver 截图,获取截图的大小,从而获得浏览器显示区域的大小 此文主要以第一种方法示例演示,第二种方法进行后续更新,敬请期待!谢谢! 1 /** 2 * Get width and

【opencv系列03】OpenCV4.X视频获取与显示

一. 视频获取与显示 VideoCapture类实现视频获取,可以从摄像头或者文件进行视频读取.首先,创建一个VideoCapture对象,参数可以是设备索引(摄像头索引)或视频文件的名称.如果是设备索引,当只连接一台摄像机时,可以是0或-1:也可以通过传递1来选择第二个摄像头.然后,便可以通过该对象一帧一帧的获取视频图像帧.最后,释放VideoCapture对象. 显示视频图像帧,涉及到的opencv函数包括: 创建对象:cap = cv2.VideoCapture(0) 打开视频进行初始化: