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

iOS 获取当前正在显示的ViewController

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

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

PDF书签导航缩放比例修改

PDF书签导航缩放比例修改

网上下载了一个PDF文档,打开一看,默认缩放比例是6400%,这就意味着没法看,得手动更改缩放比例,但是手动改了缩放比例后,再点一个书签,又变成了6400%,总不能每次都修改缩放比例吧,太浪费时间。 这里推荐一个软件,可以批量修改书签。软件名称:PDF补丁丁。该软件是绿色软件,操作十分简单,除了可...

SVN强制写日志和修改日志功能

SVN默认是可以不写日志的,也不能修改日志,使用时颇为不便。以下就讲述如何在windows系统下实现强制写日志和修改日志功能。 1、强制用户写日志 在每次提交的时候写明提交的目的是一个很好的习惯,SVN默认没有提供,但是可以通过脚本实现:将下面的代码存为bat文件,放到版本库的hooks目录下即可,...

C# textBox框实现输入下拉列表

C# textBox框实现输入下拉列表

textBox框像百度搜索出现下拉列表的样式,如图: 重点就是要关注:AutoCompleteMode和AutoCompleteSource两种属性。 具体实现代码如下: 将此方法在frmLogin_Load事件里加载, private void bindTxt() {   ...

Android:是否需要同时申明WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 权限

Android使用过程中,免不了对存储空间进行读写,那么是否需要同时申明WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE呢? 答案是:不一定。 1、当你的APP只需要读取权限时,仅需申明READ_EXTERNAL_STORAGE; 2、当你的APP需要写入...

Keil优化及如何设置某段代码不优化

Keil优化及如何设置某段代码不优化

Keil默认会对代码进行优化的,如图所示: 一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化。 1、Dead code elimination 2、Data overlaying 3、Peephole optimization 4、Register variables 5、Com...

Altium过滤器(filter)使用

Altium过滤器(filter)使用

注:本文在写作过程中,参考了ourdev大牛“zcllom 星罗棋布”发布的帖子《将Altium Designer的PCB设计打造成利器》。 在设计或查看PCB的过程中,会陷入五彩斑斓的走线、元件、过孔、覆铜等迷宫中,经常找不到或看不清自己需要的东西,因此需要化繁为简,突出自己想要操作的部分。Al...

发表评论

访客

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