最近做一个项目,要判断某个ViewController是否正在与用户交互、显示,百度了一下,这篇文章解决了我的问题,故转之:http://edsioon.me/if-uiviewcontroller-is-display/

某些情况下,需判断当前ViewController是否正在显示,比如后台网络请求报错,我们可能只希望在发起请求的页面弹窗提示用户,当用户已经跳转到其他界面,不做弹窗,减少对用户的干扰。

假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。虽然官方文档未说明UIView未显示时window属性的取值,但是经过简单的测试,大部分情况下UIView未显示时,window的值为空,因此依据此判断当前UIViewController是否正在显示。但是访问UIViewController的view属性时,可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。

示例代码如下,在UIViewController的扩展中声明了一个isVisible方法,方便以后调用

注意:UIView的官方文档中仅注明当view还未添加到window时,window属性为空;但是并未提及当window为nil时,当前view未显示。通过简单的Demo检测上文的方法可满足大部分需求,因此使用时建议进行简单测试!

【转】判断UIViewController是否正在显示相关推荐

  1. ios如何判断键盘是否已经显示

    ios如何判断键盘是否已经显示 在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UIKe ...

  2. Android手动控制软键盘的开启和关闭,判断软键盘是否显示;

    工具类,拿走就能用: import android.annotation.TargetApi; import android.app.Activity; import android.content. ...

  3. 小程序-if判断语句/条件判断语句简析 /显示隐藏判断

    本文转载自: https://www.cnblogs.com/bellagao/p/6296058.html 作者:bellagao 转载请注明该声明. 小程序的条件判断语句格式为: wx:if=&q ...

  4. 如何判断UIViewController的视图是否可见

    我有一个标签栏应用程序,有很多视图. 有没有办法知道UIViewController中当前是否可以看到特定的UIViewController ? (寻找房产) #1楼 你可以通过window属性来检查 ...

  5. jquery怎么判断不同的字显示不同的颜色_这个双十一,摄影师的显示器该换了,优派VP2785-2K显示器评测_显示器...

    2020-11-03 23:07:380点赞0收藏0评论 想攒一台电竞主机.家用主机.酷炫主机无从下手?想省钱又怕性能不达标?值得买帮你打造定制化DIY装机工具,自助全网比价装机,提供最适合的搭配方案 ...

  6. WordPress 如何判断访客浏览器显示不同内容

    WordPress 如何判断访客浏览器 主题模板适当位置添加调用: <?phpglobal $is_IE;if ($is_IE) {echo '您正在使用不安全的IE浏览器,请使用现代浏览器,浏 ...

  7. jquery怎么判断不同的字显示不同的颜色_不知道怎么封装代码?看看这几种设计模式吧!...

    为什么要封装代码? 我们经常听说:"写代码要有良好的封装,要高内聚,低耦合".那怎样才算良好的封装,我们为什么要封装呢?其实封装有这样几个好处: 封装好的代码,内部变量不会污染外部 ...

  8. Android Java判断密码强度 强度显示

    定风波 苏轼(宋) 三月七日,沙湖道中遇雨.雨具先去,同行皆狼狈,余独不觉.已而遂晴,故作此词. 莫听穿林打叶声,何妨吟啸且徐行.竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生. 料峭春风吹酒醒,微冷,山头斜照 ...

  9. Android判断软键盘 输入法 是否显示

    文章目录 1.简介 2.判断原理 3.功能实现 3.文件参考 1.简介 1)判断界面上是否显示出软键盘 2)有软键盘隐藏,没有显示 2.判断原理 根据判断整体可见区域和整体界面的位置 3.功能实现 c ...

最新文章

  1. WORD 排版十技巧
  2. 自适应col自动换行显示_10kV配网自适应综合型馈线自动化技术的测试问题及解决措施...
  3. Alpha 冲刺报告(10/10)
  4. JS、CSS中的相对路径
  5. Ubuntu 14.04安装openProj
  6. 【精致Java教程】02:Java的跨平台原理
  7. Git系列之(七) 常用指令 git reset
  8. Zookeeper分布式锁的使用
  9. LaTeX tikz初探——基本图形绘制(1)
  10. wordpress之插件安装和主题安装(包含常见问题)
  11. 事件绑定完整版2016/4/21
  12. 你对云存储的安全性了解多少?
  13. 【原创】AE套用模板教程
  14. android adb安装 apk,adb 安装并运行 apk
  15. 用vba实现一个简单的工资系统
  16. MPI和OpenMP实现矩阵相乘
  17. 简述信息都有哪些特征?
  18. 数字排列问题(全排例)
  19. INT_MAX和INT_MIN的含义和用法
  20. 2019年甘肃省普通高等学校高职(专科)升本科考试招生工作实施办法

热门文章

  1. C++ 重载运算符简单举例
  2. 无序数组及其子序列的相关问题研究
  3. svn清理失败且乱码 问题解决(转)
  4. Python相关机器学习
  5. linux 笔记 一
  6. MYSQL的MERGE存储引擎
  7. 认识 PHP 的hash函数
  8. 消除图片在ie中缓存而无法更新的问题
  9. 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
  10. 【C++】C++11 STL算法(七):排列操作(Permutation operations)、数值操作(Numeric operations)