博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取iOS客户端屏幕最上面的视图控制器
阅读量:7104 次
发布时间:2019-06-28

本文共 1344 字,大约阅读时间需要 4 分钟。

有一个这样的需求,通过点击某一个链接跳转到我们的app的某一个页面,在实现了跳转功能的时候,发现一个这样的bug就是当前页面已经是需要跳转的页面,如果用户在次点击了链接进行跳转,就会在次 push一个控制器,为了解决这个问题,就需要获取当前app的最上面控制器是那个,判读他们是一个控制器,那直接就不需要跳转了,废话不多说了,直接上代码!

// 获取当前处于activity状态的view controller- (UIViewController *)activityViewController{UIViewController* activityViewController = 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;        }    } }NSArray *viewsArray = [window subviews];if([viewsArray count] > 0){    UIView *frontView = [viewsArray objectAtIndex:0];        id nextResponder = [frontView nextResponder];        if([nextResponder isKindOfClass:[UIViewController class]])    {        activityViewController = nextResponder;    }    else    {        activityViewController = window.rootViewController;    }}return activityViewController;}复制代码

这些代码返回的是最上层的控制器,但不一定是当前控制器

  1. 如果你是navgation 嵌套的层级并且push出来多个控制器,
UINavigationController *vc = (UINavigationController *)[self activityViewController];  UIViewController *topVC = vc.topViewController;复制代码
  1. 如果是model方式弹出的控制器
UIViewController *topVC = vc.visibleViewController;复制代码

这样获取的topVC就是最上层的控制器了!

转载地址:http://xwuhl.baihongyu.com/

你可能感兴趣的文章
查找相关数据结构和算法
查看>>
Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析(下)
查看>>
我的友情链接
查看>>
将命名规范的一些列文件合并成一个完整的文件
查看>>
数据恢复过程之:服务器raid5两块硬盘离线数据恢复
查看>>
戴尔Dell Latitude E6410/E6510官方拆机图解维修手册
查看>>
SAS硬盘与SATA硬盘的区别
查看>>
html语义化
查看>>
mysql+mha高可用搭建
查看>>
思绪,飘在青山绿水间
查看>>
不同云服务模式下的安全策略解析
查看>>
mysql删除重复数据只保留一条
查看>>
Cubieboard开发环境与Uboot的SD启动卡制作
查看>>
linux中强大且常用命令:find、grep
查看>>
【Objective-C】OC中的数值的概念和常用方法(NSArray和NSMutableArray)
查看>>
linux 系统ubuntu minicom 和cutecom下串口 设置和常见问题。
查看>>
岗位角色管理,打造杰出员工
查看>>
TCP 三次握手 -转载
查看>>
NMath应用教程:如何通过代码访问底层数据和应用函数
查看>>
PHP缓存技术
查看>>