获取工程中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。

iOS开发-获取rootViewController的正确方式相关推荐

  1. IOS开发—— 获取AppDelegate的属性或字段

    IOS开发-- 获取AppDelegate的属性或字段 其它控制器中: AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplicat ...

  2. 开发小程序的正确方式

    工欲善其事必先利其器,在开发小程序之前,不妨让我们先来了解清楚,什么是正确的方式与工具. 如同我们在<小程序的昨日与今天>一文中所说,小程序的开发并不需要配置任何开发环境,只需要安装官方的 ...

  3. ios开发-获取手机相关信息

    今天在做客户端的时候,里面有个意见反馈功能. 调用系统带的邮件功能,发送邮件到指定邮箱. 然后我就想,应该在邮件正文部分添加手机相关内容,比如型号,版本,应用程序的版本等等,这样不仅使用者方便,开发者 ...

  4. iOS开发 获取设备参数

    在开发的过程中我们经常要获取设备的参数的参数,比如设备的机型,设备的系统版本,以及设备的电量等,下面我把这些做了一个整理放到了一个类里面! .h文件 #import <Foundation/Fo ...

  5. 【erlang】吃螃蟹 rust 开发 erlang nif 的正确方式 rustler

    用rust编写erlang的nif方案,以下几个star比较高 Rustler ( https://github.com/hansihe/rustler ) 这个比较火,但是没有关于如何在 Erlan ...

  6. iOS开发-获取设备型号信息

    开发中有的时候查看设计统计数据,或者通过日志查看错误信息,这个时候我们就需要获取获取设备信息,看下关于设备有几种方法: 1 2 3 4 5 NSLog(@"%@",[[UIDevi ...

  7. iOS开发------获取系统联系人(AddressBook篇)

    AddressBook是Apple提供给我们获取系统联系人的一个很方便类库,与其说方便,其实刚开始还是比较崩溃的,从开发文档来看,它还是偏向于C语言,并且不在ARC的控制之下,虽然在iOS9.0之后会 ...

  8. iOS开发- 获取精确剩余电量

    [UIDevice currentDevice].batteryMonitoringEnabled = YES;double deviceLevel = [UIDevice currentDevice ...

  9. iOS开发 - 获取网关IP,运营商,位置,可判断是在国内还是国外

    你也许会有一个需求,需要判断当前网络的IP地址是在国内还是国外,也许你需要判断连接的Wi-Fi运营商是哪家的,虽然网上也有方法,但是却写得很简单,没有进行深入的说明,所以今天博主重新整理,给大家一个方 ...

  10. iOS开发获取手机通讯录中的电话号码和姓名

    1.申请授权 #import "AppDelegate.h" #import <AddressBook/AddressBook.h>@interface AppDele ...

最新文章

  1. elasticsearch 集群在线水平扩容收缩
  2. 2012年11月14日学习研究报告
  3. python cvxpy包安装教程
  4. boost库之socket 非阻塞/缓冲区大小等属性设置
  5. 【干货】Facebook产品经理:高效对接and流程解读
  6. java在td中怎么用if_不在Java中使用if语句
  7. HBase 2.X版本的元数据修复及一种数据迁移方式
  8. Spring-学习笔记09【JdbcTemplate的基本使用】
  9. 微信支付 - 提供支付中心商户订单查询
  10. ios项目icon和default图片命名规则
  11. C++定义隐式转换函数,将类转换为内部的一个成员变量
  12. kaggle共享单车数据分析及预测(随机森林)
  13. CCF201909-2 小明种苹果(续)
  14. 【Clickhouse】Clickhouse 运算符 操作符 算术,比较,取整,逻辑,哈希,条件 字符串函数
  15. 洛谷——P2440 木材加工
  16. 20160601 工作总结
  17. [CQOI 2018]交错序列
  18. 静态文件html中加入php的Url,YII中URL伪静态加前缀.html的方法
  19. python 谷歌翻译_Python:谷歌翻译20次的程序如何实现?
  20. 单片机_第1章 单片机基础知识概述

热门文章

  1. Atititt java redis jedis 使用 Redis体系 Redis 命令 Redis 命令Redis 键(key)Redis 字符串(String)Redis 哈希(Hash)R
  2. Atitit 融合战略的艺术 目录 1.1. Os方向 uwp ms。。 1 1.2. Sdk 方向 。ms netcore 1 2. Netcore优点 1 2.1. .NET应用程序可以
  3. Atitit 理解参数 目录 1. 参数 1 1.1. 意义 1 1.2. 形式参数 实际参数 1 1.3. 默认参数 vs 必须参数 2 1.4. 位置参数,那么这个命名关键字参数 2 1.5. I
  4. Atitit 性能指标与性能提升的5个原则与性能提升模型
  5. Atitit.mssql 数据库表记录数and 表体积大小统计
  6. Paip.Php Java 异步编程。推模型与拉模型。响应式(Reactive)”编程FutureData总结... 1
  7. HDF5: 读写速度与文件的大小
  8. Rust : 如何use本地化crate与 dependencies 和 path
  9. 华夏基金:养老是基金业下一个20年最大风口
  10. RocketMQ如何保证消息的可靠性?