當應用程序進入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. ModalViewController進入應用後臺啓動
- 4. 如何在關閉wpf應用程序時關閉所有後臺進程
- 5. 當應用程序關閉時關閉另一個進程
- 6. 當應用程序轉到後臺時關閉NSStreams
- 7. 當應用程序進入後臺並進入前臺時調用UIViewController方法
- 8. EXEC_BAD_ACCESS當關閉ModalViewController
- 9. 當應用程序進入後臺時可以調用webRequest嗎?
- 10. 當它進入背景時關閉應用程序
- 11. 當應用程序進入後臺時,應用程序代理不會調用
- 12. 當應用程序進入後臺時取消API請求
- 13. 當應用程序剛進入後臺時顯示提醒
- 14. 當應用程序進入後臺時處理事件
- 15. 當應用程序進入後臺模式時釋放圖形
- 16. 當應用程序進入後臺時運行MPMoviePlayer
- 17. 當進程關閉時禁用「加入」
- 18. 編寫一個後臺程序,當主應用程序關閉時執行android
- 19. 當我的應用程序關閉時,要關閉從另一個應用程序的共享意圖開始的活動。現在它正在進入後臺
- 20. Facebook應用程序進入前臺後
- 21. WL.Client.Logout()當應用程序關閉時
- 22. 當控制檯關閉時,GUI應用程序中的AttachConsole
- 23. 當Android應用程序從後臺進入前臺時如何獲取回調?
- 24. 如何在關閉JFrame時在後臺運行應用程序?
- 25. 當應用程序B關閉時關閉應用程序A:Mac OS X 10.7.3
- 26. 前臺應用關閉進程ID:Blackberry
- 27. 當應用程序在後臺或關閉時的自定義通知
- 28. Xamarin當應用程序關閉時在後臺獲取GPS位置數據
- 29. 當Android應用程序關閉/發送到後臺時運行代碼
- 30. 當控制檯窗口關閉時阻止程序關閉
刪除觀察者怎麼樣,當應用程序再次進入前臺關閉對話框? – 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