文档章节

IOS 判断View是否显示

xiaobai1315
 xiaobai1315
发布于 2017/02/09 11:15
字数 231
阅读 27
收藏 0

APP的结构是:rooViewcontroller是tabbarController,tabbarController有4个NavigationController + ViewController的子控制器,ViewController中有一个ScrollView,ScrollView中显示4个UITableViewController。 scrollView中的UITableViewController都继承自同一个tableViewController;

新需求:重复点击tabbarController底部的按钮时,要求刷新当前显示tableView的内容。

实现方式:重复点击tabbarController底部的按钮时发出通知,然后在tableView中监听通知。

出现问题:如果APP加载了其他ViewController, scrollView中加载了多个tableViewController时,通知会在多个页面中同时监听。

解决办法:

1、判断tableViewController的View是否有窗口,可以屏蔽掉其他ViewController;

2、判断tableViewController的View是否和keyWindow相交,可以屏蔽掉其他tableViewController;

// 如果当前控制器的view不在window上,就直接返回,
    if (self.view.window == nil) return;
    
    // 如果当前控制器的view跟window没有重叠,就直接返回
    if (![self.view intersectWithView:self.view.window]) return;

 

© 著作权归作者所有

共有 人打赏支持
xiaobai1315
粉丝 3
博文 203
码字总数 63303
作品 0
程序员
私信 提问
ios面试题,求大神帮忙解决啊

你对哪一种控制系统比较熟悉? 请描述一下你的iOS应用开发流程。 是否熟知CocoaPods?它是什么?如何运行的? 请概括一下你对软件授权的理解,及其对软件开发的影响。 请概括一下你在构建iOS...

newlay
2015/04/10
1K
0
悬赏RMB100求解决.如何让两个重叠的view同时响应touch事件

抄袭宠物小精灵,把高德地图的MAMapView和Unity 3D的UnityView重叠,Unity的View在上层,所以Unity 的View阻挡了高德地图View的事件。 用_unityView.userInteractionEnabled = NO;的话,那么...

NickWidle
2016/09/01
701
2
iOS 7:用代码解决视图控制器的View整体上移问题

如果你准备将你的老的 iOS 6 app 迁移到 iOS 7 上,那么你必须注意了。当你的老的 app 在 iOS 7 设备上运行时,所有ViewController 的视图都整体上移了,因为 iOS 7 把整个屏幕高度(包括状态...

mingxun
2014/06/09
0
0
2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、...

Theendisthebegi
11/15
0
0
使用 Dojo Mobile 为 iOS 智能终端开发 Native-like Web 应用

简介 iOS 是 Apple 公司为 iPhone、iPod Touch、iPad 以及 iTV 等系列数码产品推出的一套基于 Mac OS X 并高度定制化的操作系统。随着这些数码产品的日益普及,越来越多的开发者加入到为其编...

IBMdW
2011/09/14
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
16分钟前
0
0
Docker搭建代码质量检测平台-SonarQube(中文版)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言...

Jacktanger
23分钟前
0
0
Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
2
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
2
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部