如何在應用程序進入後臺時關閉彈出窗口?當應用程序進入後臺時關閉彈出窗口
回答
爲此,您可以使用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. 彈出窗口:當彈出彈出窗口時關閉彈出
- 2. UIAlertView中的窗口彈出時,應用程序被關閉或在後臺
- 3. 當應用程序進入後臺時關閉modalviewcontroller
- 4. 當控制檯窗口關閉時阻止程序關閉
- 5. 調用後關閉彈出窗口
- 6. 當窗口關閉時Caliburn.Micro應用程序不會退出
- 7. 當用戶點擊外部彈出窗口時關閉引導彈出窗口
- 8. 如何在進入後臺時關閉iPhone應用程序?
- 9. 當彈出窗口關閉時刷新父窗口
- 10. 當應用程序進入後臺時運行後臺線程
- 11. 關閉動態應用程序的所有子彈出窗口
- 12. 將文件寫入響應後關閉彈出窗口
- 13. 加載後關閉彈出窗口
- 14. 3秒後關閉彈出窗口
- 15. 最後一個窗口關閉後退出應用程序
- 16. 當關閉控制檯窗口的關閉所有應用程序
- 17. 彈出窗口關閉
- 18. 關閉彈出窗口
- 19. 關閉AngularStrap彈出窗口
- 20. 要關閉彈出窗口
- 21. MessageDialog關閉彈出窗口
- 22. Javascript:關閉彈出窗口
- 23. 彈出窗口不關閉
- 24. 彈出窗口不關閉
- 25. 當出現彈出窗口時應用程序崩潰
- 26. 應用程序當前關閉關閉窗口提示
- 27. Selenium:彈出窗口關閉後用戶切換到主窗口
- 28. 當Chrome擴展程序彈出窗口關閉時調用一個函數
- 29. 頁面關閉時的彈出窗口
- 30. 彈出窗口不滾動時關閉
對於這種方法工作,你需要在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