iOS开发-获取rootViewController的正确方式_ios [uiapplication sharedapplication].delegate.win_Pandakingli的博客-程序员宅基地

技术标签: iOS开发  keyWindow获取  iOS采坑  

获取工程中window上面的RootViewController
keyWindow是,在windows数组中最近时间调用makeKeyAndVisible方法的属性。

方法一:建议使用

AppDelegate *app =(AppDelegate *) [UIApplication sharedApplication].delegate;
UIViewController *rootViewController1 = appdelegate.window.rootViewController;
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    if ([appdelegate.window.rootViewController isKindOfClass:["xxxrootVC" class]] == YES) {
        // 这样更保险
    }

方法二:不建议使用

UIAlertController或UIAlertView或UIActionSheet弹出后,keyWindow就会变成UIAlertControllerShimPresenterWindow这个类

UIWindow *window = [UIApplication sharedApplication].keyWindow;
UIViewController *rootViewController2 = window.rootViewController;

alertView的出现是因为,生成了一个新的window,加在了界面上面。
这个时候获取到的keyWindow就是UIAlertControllerShimPresenterWindow。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Nathan1987_/article/details/87938667

智能推荐

开源之夏2022携手Casbin社区,邀你参与项目开发_casbin redis_豆壳有豆的博客-程序员宅基地

开源之夏2022携手Casbin社区,邀你参与项目开发_casbin redis

简述建一个一年免费主机的网站的教程_免费 虚拟服务器 网页 生成_laiczhang的博客-程序员宅基地

简述建一个一年免费主机的网站的全程1.域名购买(买东西太简单了。不说)1.1 阿里云1.2 腾讯云2.2 百度云2.一年免费服务器主机(免费靠谱没套路,速度杠杠的,需要一张支持VISA的信用卡提供支付验证)2.1 Google Cloud 新建VM实例 (推荐)2.1 Amazon AWS3.源码部署3.1 开启服务器3.2 安装网站运行环境(宝塔面板,lnmp,lamp..._免费 虚拟服务器 网页 生成

Quartz定时任务框架使用总结_饼条豪侠的博客-程序员宅基地

Quartz可以用来做什么?Quartz是一个任务调度框架。比如你遇到这样的问题想每月25号,信用卡自动还款想每年4月1日自己给当年暗恋女神发一封匿名贺卡想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Qu

SpringDataJPA实体类关系映射配置_jpa 实体映射表规则配置_墙角斑驳的博客-程序员宅基地

SpringDataJPA//FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载//FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载//cascade = CascadeType.ALL 表示所有情况下均进行关联操作,即save-update和delete@JsonBackReference //解决..._jpa 实体映射表规则配置

Tensorflow2.0 定义模型的三种方法_tensorflow 定义模型_cofisher的博客-程序员宅基地

1、API通过直接使用 tf.keras.Sequential() 函数可以轻松地构建网络,如:mobile = tf.keras.applications.MobileNetV2(include_top=False, weights='imagenet', input_shape=(224, 224, 3)) mobile.trainable = Falsemodel = tf.keras.Sequential([ simplified_mobile, tf.keras.layers.Dr_tensorflow 定义模型

C语言(循环结构程序设计)判断素数_用c语言while循环判断素数可循环_Color20的博客-程序员宅基地

任务描述素数,又称质数,是指在大于1的自然数中,除了1和它本身以外不能被其它数整除的数。最小的素数是2。 本关要求输入一个正整数,判断该正整数是否是素数。素数由于其不能被等分的原因,有很多实际的应用,例如:汽车变速箱的齿轮的相邻的两个大小齿轮齿数一般设计为素数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。 在害虫的生物生长周期和杀虫剂使用之间的关系上,实验表明,素数次数地使用杀虫剂是最合理的,都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。 以素数形式无规律_用c语言while循环判断素数可循环

随便推点

linux-fifo_linux c语言监控fifo内容_一书一茶一世界的博客-程序员宅基地

linux进程间通信之有名管道fifo本文通过具体的实例带你深入了解进程通信里的有名管道通信一、硬件工具一块已经烧录最小系统进去的开发板pc机U盘或TF卡或NFS二、软件工具ubuntu及虚拟机交叉编译器(此处采用的是Arm-2009q3)编辑器(此处采用的是notepad)超级终端vim编辑器三、读本文前得了解的知识交叉编译,文件函数的操作(open,write,rea..._linux c语言监控fifo内容

制造大迷局:一边全球造假,一边卡世界脖子_小创同学的博客-程序员宅基地

盘子刷七遍、马桶水可以喝、一辈子就为煮好一碗饭……篡改质检报告、专业造假几十年……究竟哪个才是日本制造业的真相?

用Redis来实现接口幂等性校验_redis判断幂等_CBeann的博客-程序员宅基地

项目简介springboot redis @ApiIdempotentAnn注解 + 拦截器对请求进行拦截 压测工具: jmeter实现思路 为需要保证幂等性的每一次请求创建一个唯一标识token, 先获取token, 并将此token存入redis, 请求接口时, 将此token放到header或者作为请求参数请求接口, 后端接口判断redis中是否存在此token:如果存在, 正常处理业务逻辑, 并从redis中删除此token, 那么, 如果是重复请求, 由于token已被..._redis判断幂等

时序数据库DolphinDB历史数据回放教程_在c++中使用dolphindb的reply对象进行单表回放_DolphinDB智臾科技的博客-程序员宅基地

一个量化策略在用于实际交易时,处理实时数据的程序通常为事件驱动。而研发量化策略时,需要使用历史数据进行回测,这时的程序通常不是事件驱动。因此同一个策略需要编写两套代码,不仅耗时而且容易出错。在 DolphinDB database 中,用户可将历史数据按照时间顺序以“实时数据”的方式导入流数据表中,这样就可以使用同一套代码进行回测和实盘交易。DolphinDB的流数据处理框架采用发布-订阅-消费的模式。数据生产者将实时数据继续地以流的形式发布给所有数据订阅者。订阅者收到消息以后,可使用自定义函数或者Do_在c++中使用dolphindb的reply对象进行单表回放

python中Linux基础命令2,重定向、查看文件、软硬链接、文本搜索、查找文件、文件权限、以及压缩和打包_长安白猫的博客-程序员宅基地

1.echo 和 重定向命令a. echo $? 显示上一次命令或程序的执行状态码b.echo $PATH 显示系统环境变量 PATHa. > 输出重定向,用来将输出道屏幕的数据,重定向到一个指定位置(一般是指一个文件)不管制定的文件是否存在,都会创建新文件保存数据>> 输出重定向,区别使用 >> 是追加数据2.查看文件内容 和 管道查看文件内容...

ubuntu12.04下用MPICH3.1搭建并行计算平台_mpich3并行指令_lligen-dai的博客-程序员宅基地

1 修改hosts文件,每个node计算机都要改 $sudo gedit /etc/hosts:127.0.0.1 localhost 192.168.1.1 node1 server 192.168.1.2 node2_mpich3并行指令

推荐文章

热门文章

相关标签