你好,我正在开发一款iPad应用程序,并被要求在应用程序后台运行时关闭所有的弹出窗口(如果有的话)。
我在网上进行了一些研究,但没有找到一个简单的方法。我想在这里分享一些我的想法,看看是否有更好的方法来解决这个问题。
1、在委托中的didEnterBakcground中解除弹出窗口。似乎不实际,因为我们必须添加所有弹出窗口的引用。
2、递归地遍历当前窗口中的所有视图,通过(class = _UIPopoverView)找到弹出窗口视图。这似乎有点儿巧妙和危险。
3、在拥有弹出窗口的每个对象中设置UIApplicationDidEnterBackgroundNotificationgroundNotification并关闭它们。这似乎是合理的,但如果你的应用程序中有数百个弹出窗口,那么会很麻烦。
4、或者增加一个类别方法,例如-(void)dismissWhenAppWillEnterBackground; 并注册通知。
还有更容易的方法吗?