如何在应用程序进入后台时关闭弹出窗口?当应用程序进入后台时关闭弹出窗口
回答
为此,您可以使用appdelegate.m文件中的委托方法
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//put your dissmiss popover code here
}
发送您的应用程序委托的willResignActive
方法的NSNotification
,并包含弹出视图控制器,听它,并将它在收到通知时解除所述弹出窗口。
最好是注册您的控制器为UIApplicationDidEnterBackgroundNotification
或UIApplicationWillResignActiveNotification
,并在您的应用程序转到后台时关闭它,这会让您的生活更加轻松。
在viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMethod)
name:UIApplicationDidEnterBackgroundNotification object:nil];
实现方法注册的通知,并
-(void)myMethod{
// dismiss popview here
}
终于在您的视图控制器从通知取消注册
-(void)dealloc{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
不想使用通知,是否有任何方法从窗口获取UIPopoverController实例,因为我们可以获取警报,操作表。 – Ashwani 2013-03-05 12:58:49
我觉得最好是使用通知,而不是直接在appDelegate中调用viewcontroller的代码 – nsgulliver 2013-03-05 13:01:18
我在窗口的子视图上递归迭代以取消警报和工作表,寻找类似的方法 – Ashwani 2013-03-05 13:06:50
试试这个
- (void)applicationDidEnterBackground:(UIApplication *)application
{
//[popover dissmissPopoverAnimated:YES];
}
- 1. UIAlertView中的窗口弹出时,应用程序被关闭或在后台
- 2. 当应用程序进入后台时关闭modalviewcontroller
- 3. 当控制台窗口关闭时阻止程序关闭
- 4. 当窗口关闭时Caliburn.Micro应用程序不会退出
- 5. 如何在进入后台时关闭iPhone应用程序?
- 6. 当弹出窗口关闭时刷新父窗口
- 7. 将文件写入响应后关闭弹出窗口
- 8. 加载后关闭弹出窗口
- 9. 3秒后关闭弹出窗口
- 10. 最后一个窗口关闭后退出应用程序
- 11. 当关闭控制台窗口的关闭所有应用程序
- 12. 弹出窗口不关闭
- 13. 弹出窗口关闭
- 14. 弹出窗口不关闭
- 15. Javascript:关闭弹出窗口
- 16. 当出现弹出窗口时应用程序崩溃
- 17. Selenium:弹出窗口关闭后用户切换到主窗口
- 18. 弹出窗口不滚动时关闭
- 19. 页面关闭时的弹出窗口
- 20. 关闭窗口后关闭可可应用程序
- 21. 如何在关闭wpf应用程序时关闭所有后台进程
- 22. 当窗口关闭时,我的应用程序失去焦点
- 23. 当应用程序关闭时关闭另一个进程
- 24. 最后一个窗口关闭时的散焦应用程序
- 25. 如何打开弹出窗口并关闭弹出窗口?
- 26. 关闭弹出窗口后刷新父窗口
- 27. 关闭弹出窗口后刷新父窗口
- 28. 保存后关闭弹出窗口的visualforce窗口
- 29. 关闭弹出窗口后自动刷新父窗口
- 30. 当弹出窗口关闭时播放声音文件(Google扩展程序)
对于这种方法工作,你需要在appDelegate中保留popoverController的引用,这可能不是一个好的选择。 @David Haynes和nsgulliver的答案会更好。 – Anupdas 2013-03-05 12:58:38
@Anupdas你是对的。 – Dilip 2013-03-05 12:59:29
不错的答案+1。 – 2013-03-05 13:06:55