當應用程序進入background.i時,我需要自動關閉我的uiimagepicker模式viewcontroller。我嘗試將代碼放在viewdiddissappear方法中的dismissmodalviewcontroller代碼中,但它沒有被調用。所以我做了一個參考的appdelegate的視圖 - 控制,並試圖把它的applicationdidenterbackgroundmethod但仍沒有working.can有人指出,要做到這一點當應用程序進入後臺時關閉modalviewcontroller
回答
嘗試在您想要的UIViewController中添加NSNotificationCenter觀察員UIApplicationDidEnterBackgroundNotification時的正確方法解僱。使用選擇器關閉模態視圖
- (void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(didEnterBackground:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver: self
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}
- (void)didEnterBackground:(NSNotification*)note
{
[self.navigationController dismissModalViewAnimated:NO];
}
我不認爲你需要經歷所有這些。
從the docs:
If you present several modal view controllers in succession, and thus build a stack of modal view controllers, calling this method on a view controller lower in the stack dismisses its immediate child view controller and all view controllers above that child on the stack.
嘗試調用從父視圖控制器[self dismissModalViewController:NO]
在實施- (void) viewDidUnload
。
這是未經測試的,但文檔暗示它應該爲您完成這項工作。
測試第一個模式視圖控制器堆棧,完美工作。 – 2013-02-01 00:08:56
當應用程序移動到背景並且工作正常時,最好的方法是刪除模式。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(dismissView:)
name:UIApplicationDidEnterBackgroundNotification object:nil];
}
- (void)dismissView:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
你也可以像這樣
[[NSNotificationCenter defaultCenter] removeObserver: self
name:UIApplicationDidEnterBackgroundNotification
object:nil];
- 1. 當應用程序進入後臺時關閉彈出窗口
- 2. 如何在進入後臺時關閉iPhone應用程序?
- 3. 當應用程序進入後臺時運行後臺線程
- 4. ModalViewController進入應用後臺啓動
- 5. Swift - 當應用程序進入後臺時進入視圖
- 6. 如何在關閉wpf應用程序時關閉所有後臺進程
- 7. Windows 8 Winrt應用程序進入後臺或關閉
- 8. 當應用程序關閉時關閉另一個進程
- 9. 當應用程序轉到後臺時關閉NSStreams
- 10. EXEC_BAD_ACCESS當關閉ModalViewController
- 11. 當應用程序進入後臺並進入前臺時調用UIViewController方法
- 12. 當應用程序進入後臺時使計時器無效
- 13. 顯示ModalViewController並進入後臺狀態後,應用程序崩潰
- 14. 應用程序在後臺被關閉
- 15. 當應用程序進入後臺時可以調用webRequest嗎?
- 16. 當應用程序進入後臺時,應用程序代理不會調用
- 17. 當它進入背景時關閉應用程序
- 18. 如何從我的Android應用程序關閉後臺進程?
- 19. Android後臺進程 - 從應用程序啓動到關閉
- 20. Android殺死後臺進程並關閉應用程序
- 21. 當應用程序進入後臺時取消API請求
- 22. 當應用程序進入後臺時顯示暫停菜單
- 23. 當應用程序進入後臺時運行MPMoviePlayer
- 24. 當應用程序進入後臺時,startAdvertisingPeer是否工作?
- 25. 當應用程序進入後臺時處理事件
- 26. 當應用程序進入後臺模式時釋放圖形
- 27. 當應用程序剛進入後臺時顯示提醒
- 28. UIDeviceBatteryLevelDidChangeNotification當應用程序進入後臺時的問題
- 29. 當應用程序進入後臺時執行Segue
- 30. 當應用程序進入後臺時啓動JavaScript函數
刪除觀察者怎麼樣,當應用程序再次進入前臺關閉對話框? – Till 2011-04-16 09:43:21
如果有可能,它將高清與appdidenterbackground本身 – sujith1406 2011-04-16 10:06:04
這是相同的,如果你把解僱代碼viewWillDisappear的viewController呈現uiimagepicker模態? – Sefran2 2011-04-16 12:10:38