我想在用戶在我的應用程序的相機選項卡上標籤以拍攝照片(類似於Instagram等許多照片拍攝應用程序)時立即呈現UIImagePickerController
。目前,我有一個名爲CameraViewController
的VC,它顯示從UIImagePickerController拍攝的照片,並在CameraViewController
的功能我提供ImagePickerController
模式當我檢測到沒有圖片已被採取。當在View Controller生命週期中呈現UIImagePickerController時?
雖然這工作的大部分時間,我注意到,有時我會得到一個異常說:
「終止應用程序由於未捕獲的異常‘NSInvalidArgumentException’,理由是:「應用程序試圖把模態的主動控制器「。
根據這裏的一些SO問題的建議,我也嘗試在viewDidAppear
中介紹控制器。但是,使用viewDidAppear
時,模式ImagePicker永遠不會被解僱,並且我一直收到錯誤「不平衡呼叫開始/結束外觀轉換」。
我的問題是:
- 我目前呈現ImagePickerController模態,爲用戶拍攝照片,然後解僱一次拍攝照片。通常情況下,ImagePickerControllers是最可靠/無問題的方式。
- 還有哪些地方可以考慮將ImagePickerController放入視圖生命週期以獲得所需的效果?
這裏是我的代碼:
在viewWillAppear
BOOL modalPresent = (BOOL)(self.presentedViewController);
if (!appDelegate.imageStorageDictionary[@"picture1"]){
if (modalPresent == NO){
[self presentViewController:self.imagePickerController animated:NO completion:nil];
}
}
在imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
//Other lines omitted
if (![[self imagePickerController] isBeingDismissed])
[self dismissViewControllerAnimated:NO completion:nil];