当前位置:首页 > 技术心得 > 正文内容

iOS 获取当前正在显示的ViewController

xjtudll10年前 (2015-08-16)技术心得6230

我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。


//获取当前屏幕显示的viewcontroller
- (UIViewController *)getCurrentVC
{
    UIViewController *result = nil;
    
    UIWindow * window = [[UIApplication sharedApplication] keyWindow];
    if (window.windowLevel != UIWindowLevelNormal)
    {
        NSArray *windows = [[UIApplication sharedApplication] windows];
        for(UIWindow * tmpWin in windows)
        {
            if (tmpWin.windowLevel == UIWindowLevelNormal)
            {
                window = tmpWin;
                break;
            }
        }
    }
    
    UIView *frontView = [[window subviews] objectAtIndex:0];
    id nextResponder = [frontView nextResponder];
    
    if ([nextResponder isKindOfClass:[UIViewController class]])
        result = nextResponder;
    else
        result = window.rootViewController;
    
    return result;
}

参考资料:


扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/364/

标签: ios
分享给朋友:

“iOS 获取当前正在显示的ViewController” 的相关文章

Keil新增STC 51型号

Keil新增STC 51型号

STC官网提供的方法: (详见:http://www.mcu-memory.com/) 备份KEIL安装目录下的UV2.CDB或者UV3.CDB文件(在文件夹UV2或者UV3里面),然后用STC提供的同名的CDB文件覆盖。 这种方法操作起来很简单,但缺点是在器件选型时,只能选择STC单片机,其他的都...

Xcode:failed to get the task for process XXX 解决办法

问题:     iOS真机调试程序,报如下错误信息:failed to get the task for process XXX 原因: 证书问题,project和target的证书都必须是开发证书,不能用分发证书。 解决方案:     p...

XP 安装IIS步骤

XP 安装IIS步骤

第一步:在网上下载IIS5.1安装包。第二步:进入控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾。这里还有很重要的一步设置 ,否则总是会出现找不到文件!进windows组件后,选附件和工具(详细信息),游戏(详细信息),去掉internet游戏前面的勾。第三...

金蝶K3 计划订单批量维护自定义字段处理

现需要在计划订单批量维护报表中增加一自定义字段,然后维护后可以更新到计划订单对应自定义字段中。具体可通过如下操作解决: 1、在计划订单中自定义字段,同时通过SQL查找到该字段在数据库表中的字段名,如为FHeadSelfJ0550。 2、在计划订单批量维护表体中增加自定义字段,字段名改为和计划订...

金蝶K3老单插件开发-如何刷新单据、锁定单据

在金蝶K3工业老单插件开发中,用SQL在后台更新了单据数据,如何刷新单据,将新的值显示在单据上?用 m_BillTransfer.DoRefreshControl方法是不行的,需要使用如下方法: m_BillTransfer.BillFunc.ReFillBill 再介绍几个K3工业老单BillFu...

再谈Proteus无法放置元件的解决方法

再谈Proteus无法放置元件的解决方法

前面已经写过一篇关于Proteus7.6 SP4无法放置元件的解决办法,当时是用“解决pwi退出问题.rar”里面的文件覆盖解决的,而且覆盖后也确实可用。 然而好景不长,今天再次用Proteus7.6的时候,发现又不能放置元件了…… 归根结底还是日期的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。