iOS判断当前控制器是否正在显示

+(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController
{
    return (viewController.isViewLoaded && viewController.view.window);
}
也可以将该方法定义在UIViewController的分类中, 方便多处调用

 
假如一个UIView对象当前正在显示,那么它的window属性肯定为非空值。

虽然官方文档未说明UIView未显示时window属性的取值,但是经过简单的测试,大部分情况下UIView未显示时,

window的值为空,因此依据此判断当前UIViewController是否正在显示。但是访问UIViewController的view属性时,

可能会引起view加载(假如此时还未加载),这是不必要的,而且还可能引起无法预期的问题。因此在访问view属性之前,最好先检查isViewLoaded属性来避免上述问题。

来源:http://www.cnblogs.com/Rinpe/p/5279130.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 北京时间10月2日,据《圣何塞水星新闻》报道,昨天勇士与掘金的季前赛开始之前,4届最佳防守球员本-华莱士把上赛季的...
    coco9981阅读 3,564评论 0 1
  • 新的一天,你以为还是一样的循规蹈矩,呵呵!NO,恭喜你,今天被打破了,身兼“保姆”的你不得不一大早在家、学...
    那村的二丫阅读 1,664评论 0 0
  • 人有第六感吗?人与人之间的灵犀相通是怎样的体验呢?对于即将发生的事情,人可会有微妙的稍纵即逝的预感吗?当我把恬淡的...
    兰兮阅读 1,690评论 0 2
  • 今天是十月份的最后一天,早上起来习惯性的打开了手机上的天气预报。和往常一样,第一个关注的始终是家乡那边的天气怎...
    千羽君殇阅读 1,638评论 0 0
  • 在这个随身携带手机的年代,唯一改变自己低头族的方法,那就是把手机变成相机来用,最起码能让你的姿势可能变成站...
    丹娜阅读 3,056评论 0 0