码迷,mamicode.com
首页 > 其他好文 > 详细

判断UIViewController是否正在显示

时间:2015-09-02 18:48:59      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

转自: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是否正在显示

标签:

原文地址:http://www.cnblogs.com/XL-OnTheWay/p/4779124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!