判断当前窗口是否显示

判断当前窗口是否显示

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

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

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

if(self.view.isViewLoaded && self.view.window) {
    //code
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 7、不使用IB是,下面这样做有什么问题? 6、请说说Layer和View的关系,以及你是如何使用它们的。 1.首先...
    AlanGe阅读 4,446评论 0 1
  • 1.我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view ...
    萧城x阅读 9,355评论 0 0
  • 自从入了 Mac 后,图片的修改让我操碎了心,Photoshop 是必须要装的软件了,系统自带预览功能感觉挺全能的...
    千羽之城88阅读 4,836评论 0 0
  • 姓名:王佳梅 省份:吉林 【日管理打卡第16天】 【知~学习】 1、醒来:知行合一传习读本 2、线上6访、线下6访...
    王佳梅美容达人阅读 1,562评论 0 0
  • 大家好,我叫小灰灰。哎,我不是灰太狼家的那个小灰灰啦,我是一只鸟,确切的说,我是一只喜鹊。因为我的毛是灰色的,再加...
    青三1219阅读 3,921评论 3 50

友情链接更多精彩内容