1. 通过UIApplication获取

UIWindow *window = [UIApplication sharedApplication].keyWindow;
或者
UIWindow *window = [[UIApplication sharedApplication].windows lastObject];
复制代码

2. 比较严谨的获取方法:

- (UIWindow *)lastWindow{NSArray *windows = [UIApplication sharedApplication].windows;for (UIWindow *window in [windows reverseObjectEnumerator]) {if ([window isKindOfClass:[UIWindow class]] && CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds)) {return window;}}return [UIApplication sharedApplication].keyWindow;
}
复制代码

3. 查找响应者

// 新建一个UIView的类目,把这个方法放进去,以后就可以直接通过view.findResponderViewController来获取视图的控制器了。
- (UIViewController *)findResponderViewController{UIResponder *next = self.nextResponder;do {if ([next isKindOfClass:[UIViewController class]]) {return (UIViewController *)next;}next = next.nextResponder;} while (next != nil);return nil;
}
复制代码

附:我的博客地址

iOS 获取屏幕最上层window以及响应者相关推荐

  1. iOS 获取屏幕的属性和宽度

    app尺寸,去掉状态栏 CGRect r = [ UIScreen mainScreen ].applicationFrame; r=0,20,320,460 屏幕尺寸 CGRect rx = [ U ...

  2. IOS获取屏幕分辨率

    获取屏幕分辨率是个很有用的功能,尤其在一些游戏相关的开发中,图形的绘制与屏幕分辨率密不可分.得到当前屏幕的分辨率是必不可少的支持. 获取屏幕分辨率可以两步走 1.得到当前屏幕的尺寸: CGRect r ...

  3. iOS 获取屏幕尺寸

    //屏幕尺寸 CGRect rect = [[UIScreen mainScreen] bounds];CGSize size = rect.size;CGFloat width = size.wid ...

  4. iOS 获取屏幕亮度和调整屏幕亮度的方法

    //获取亮度 [UIScreen mainScreen].brightness;//调整亮度 [[UIScreen mainScreen] setBrightness:value];

  5. ios xcode真机调试获取屏幕截屏

    ios xcode真机调试获取屏幕截屏 非常多时候我们须要在调试的过程中把手机屏幕截图发给其它人看,在android开发中我们能够非常方便的截图保存.而xcode开发ios的时候发现这个需求却如此困难 ...

  6. iOS获取最上层控制器

    iOS获取最上层控制器 + (UIViewController *)uppermostController {UIViewController *resultController = [self ab ...

  7. ios ReplayKit RPScreenRecorder获取屏幕录制的每一帧数据startCaptureWithHandler

    ios ReplayKit RPScreenRecorder获取屏幕录制的每一帧数据startCaptureWithHandler 获取帧数据接口: (void)startCaptureWithHan ...

  8. ios 获取控件高度

    2019独角兽企业重金招聘Python工程师标准>>> 1.ios 获取控件相对屏幕的位置 需要获取的对象为view1,则该视图相对屏幕的位置可使用下面方法实现: UIWindow ...

  9. 函数语法:JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度(转载)...

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

最新文章

  1. Machine Learning | (7) Scikit-learn的分类器算法-决策树(Decision Tree)
  2. Bio-protocol第一届生物实验短视频大赛集锦(三)——软件使用篇
  3. leetcode--Two Sum
  4. 【错误记录】IntelliJ IDEA 中右键点击源码目录选择 New 选项 没有创建 Java Class 选项 ( 将对应的源码目录标记为 Sources 选项 )
  5. java 按键框架,如何在java中更改框架?
  6. Git 2.19 对Diff、Branch和Grep等做了改进
  7. 配置phoenix连接hbase_使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试
  8. linux查看进程调用接口,查看某个程序都调用哪些api函数
  9. 逻辑斯蒂回归与最大熵模型---最大熵模型
  10. 构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)—托管资源优化—监常用优化措施...
  11. velocity(vm)模板引擎学习介绍及语法
  12. 全新Linux+Python高端运维班第一次作业
  13. Esp8266(4)
  14. steam快速换号工具易语言源码 附成品
  15. 在线MAC地址查询和在线随机生成MAC地址
  16. Java 小游戏(骑士大战魔王)
  17. 立志做中国市场TOP2,新华三云屏底气何来?
  18. C语言明显优于其它高级语言
  19. 快递单号中的派件时效该怎么查?
  20. python手机充值代码_不用框架,原生使用python做注册接口/登陆接口/充值接口的测试,做的数据/代码分离...

热门文章

  1. git 挽救忘记提交到哪个分支的代码
  2. C++ primer - - 第一部分
  3. 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
  4. ie focus bug
  5. java窗口绘图_JAVA-窗口中绘制图形
  6. 如何解决 “ 段错误(吐核) ” ???
  7. 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug
  8. 基于Spring AOP的JDK动态代理和CGLIB代理
  9. iOS快速集成检查更新
  10. Office 2010 Multi-language Pack download