【发布时间】:2013-07-03 00:23:56
【问题描述】:
您好,我正在开发一款 iPad 应用,并且要求在应用进入后台时关闭所有弹出框(如果有)。
我在网上做了一些研究,但没有找到简单的方法。我想在这里分享一些我的想法,看看是否有更好的方法。
1,在委托中关闭 didEnterBakcground 中的弹出框。似乎不切实际,因为我们必须在其中添加所有弹出框引用。
2,在当前窗口中递归遍历所有视图以找到(class= _UIPopoverView)的弹出视图。这似乎有点hacky和危险。
3,在每个拥有弹出框的对象中设置UIApplicationDidEnterBackgroundNotificationgroundNotification并关闭它们。这看起来很合理,但如果您的应用中有数百个弹出框,则确实很麻烦。
4,添加一个类别方法如何说 -(void)dismissWhenAppWillEnterBackground;并注册通知。
或者有更简单的方法吗?
【问题讨论】:
-
为什么您的应用程序中会有数百个弹出窗口?只需将活动弹出框设置为观察 UIApplicationDidEnterBackgroundNotificationgroundNotification 或 willEnterBackground 等效项并让它们自行关闭。
-
@Jessedc 业务需要有这些弹出框。我只是想看看是否有比这更好的解决方案。谢谢。
标签: ios ipad uipopovercontroller popover