【转】判断UIViewController是否正在显示
来源:互联网 发布:淘宝怎么预防死人衣服 编辑:程序博客网 时间:2024/06/08 16:35
最近做一个项目,要判断某个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检测上文的方法可满足大部分需求,因此使用时建议进行简单测试!
0 0
- 【转】判断UIViewController是否正在显示
- 判断UIViewController是否正在显示
- iOS 判断 当前ViewController是否正在显示
- 判断某个导航控制器当前是否正在显示
- Android判断某个Activity是否正在前台显示
- 获取当前AppDelegate 正在显示的UIViewController
- 判断文件是否正在使用
- 判断Service是否正在运行
- 判断service是否正在运行
- C# 判断文件是否正在被使用
- 判断一个文件是否正在被使用
- 判断文件是否正在被使用
- Delphi判断文件是否正在被使用
- 如何判断一个线程是否正在执行
- Delphi判断文件是否正在被使用
- 判断一个文件是否正在被使用
- android判断某服务是否正在运行
- C# 判断文件是否正在被使用
- 异步消息与AsyncTask机制
- 提交spark应用程序spark-submit
- Android知识点
- 创建MySQL索引
- poj-1947 Rebuilding Roads
- 【转】判断UIViewController是否正在显示
- 作业三
- 业界值得关注的公司(开篇)
- 15第十三周项目一——动物这样叫
- c++虚函数的使用
- 业内值得关注的公司(格灵深瞳)
- MyBatis入门
- 我不懂女人我不懂人
- 远程操作linux的利器:putty和psftp