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

iOS 获取当前正在显示的ViewController

xjtudll11年前 (2015-08-16)技术心得8370

我们在非视图类中想要随时展示一个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” 的相关文章

请确保此文件可访问并且是一个有效的程序集或COM组件

核心:重新注册dll 在项目中添加一个dll的引用时出现错误: 请确保此文件可访问并且是一个有效的程序集或COM组件 解决方法:运行--cmd--regsvr32 dll的绝对路径名(路径实例:c:/dll/xxx.dll) 如果是.NET的COM组件,要用Regasm注册...

线反转法行列键盘扫描

线反转法行列键盘扫描

    行列键盘的学习是单片机学习的必经之路,可是对于初学者来说学习起来并不容易。书上的资料不多,或是说明不细,亦或太复杂不易理解。而线反转法行列键盘扫描简单易懂,非常适合初学者学习,也可作为程序开发之用。    了解行...

浅析电波表——美国WWVB码

浅析电波表——美国WWVB码

参考文献: http://www.nist.gov/pml/div688/grp40/wwvb.cfm http://tf.nist.gov/stations/wwvbtimecode.htm http://en.wikipedia.org/wiki/WWVB 一、WWVB码简介 WWVB与WWV...

Windows7自带计算器计算反三角函数

Windows7自带计算器计算反三角函数

开始->所有程序->附件->计算器 查看->选择科学型 点击【Inv】,即可进入反三角函数的计算。...

Xcode Warning:No rule to process file xxx 解决

Xcode Warning:No rule to process file xxx 解决

在编译程序的时候,Xcode给出了警告:warning: no rule to process file '$(PROJECT_DIR)/xxx.h' of type sourcecode.c.h for architecture armv7。如图所示: 从warning中我们可以看出是某个.h...

金蝶K3:直接SQL报表中进行核算项目数据授权控制的方法

--【第一步】: --根据核算项目类别ID,查询到对应核算项目的数据授权表及查看、修改、删除的权限字段名和权限掩码 --例如查出客户的数据授权表为Access_t_Organization --几乎所有的核算项目的查看、修改、删除的权限字段名和权限掩码都是以下这样: -...

发表评论

访客

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