如何在不操作界面的情况下关闭UIPopoverController
来源:互联网 发布:c语言是什么语言 编辑:程序博客网 时间:2024/04/30 18:51
最近工作中,出现一种业务场景:
客户端A 可以 通过Socket控制客户端B。
当A未控制B时,B通过点击一个按钮打开了一个UIPopoverController,在PopoverController没有关闭的情况下(需要点击屏幕之后才能关闭),
A开发控制B,并使得B打开一个界面 bView,那么在bView打开后,会发现PopoverController没有被覆盖在bView的下面,而是依然显示在最外层。
在检查之后,发现PopoverController是由一个叫 UIDimmingView的类承载的(私有API中的类)。
这个时候,我们需要手动删除UIDimmingView:
UIWindow *window = [[UIApplication sharedApplication] keyWindow]; for (UIView *baseView in window.subviews) { if ([baseView isKindOfClass:NSClassFromString(@"UIDimmingView")]) { for (UIView *popoverView in baseView.subviews) { if ([popoverView isKindOfClass:NSClassFromString(@"_UIPopoverView")]) { [baseView removeFromSuperview]; break; } } } }
这样在B收到A发来的控制消息时,先对把界面上的UIDimmingView移出,界面显示就正常了
- 如何在不操作界面的情况下关闭UIPopoverController
- 如何在不关闭监听的情况下move 或 purge listener.log
- 如何在保证当前Actiivty不被Finish的情况下返回上级界面
- 在不使用*、/、+、-、%操作符的情况下,如何求一个数的1/3
- 求教关于窗口分割的问题:如何在不关闭窗口的情况下随意更改窗口的分割数目
- 如何在不联网的情况下安装 Silverlight Tools
- 如何在不联网的情况下安装 Silverlight Tools
- 服务器在不联网的情况下如何对时
- 如何在不装ORACLE的情况下使用PLSQL
- 如何在不跳转的情况下实现用户登录
- 如何在不改SQL的情况下优化数据库
- 在有EditText的界面 默认情况下不获取焦点(不弹出输入框)
- android 数据连接关闭的情况下如何让彩信发不出去
- Android 数据连接关闭的情况下如何让彩信发不出去
- [FAQ03982]数据连接关闭的情况下如何让彩信发不出去
- 为什么可以在不结束线程的情况下关闭其handle?
- 在不刷新页面的情况下使用 DOM 改变网页界面
- 如何在关闭ssh连接的情况下,让程序继续运行?
- php中的“魔术引号”- magic quotes
- SIFT算法文章链接
- Eclipse调优
- Ubuntu12.04编译Android 错误(飞凌6410)
- 解决归档出错,ORA-00257: archiver error. Connect internal only, until freed.
- 如何在不操作界面的情况下关闭UIPopoverController
- win系统服务编程c++实现
- 日历--弹出式日期选择器
- The Phantom of the Opera-4、The Phantom is angry
- apache 启动问题
- 谈谈java中的WeakReference
- Oracle工作笔记
- 光纤交换机 和 SAN交换机 概念
- otsu自适应阈值分割的算法描述和opencv实现,及其在肤色检测中的应用