UIImagePickerController 在第二次取消时崩溃
Posted
技术标签:
【中文标题】UIImagePickerController 在第二次取消时崩溃【英文标题】:UIImagePickerController crashes on cancelling second time 【发布时间】:2015-07-09 07:21:40 【问题描述】:我在我的应用程序中使用UIImagePickerController
,每当我第二次单击取消时它就会崩溃并显示以下崩溃日志:
由于未捕获的异常而终止应用程序 'UIViewControllerHierarchyInconsistency',原因:'子视图 控制器:应该有父级 视图控制器:(null)但实际父级是:'
解雇代码:
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
[self dismissViewControllerAnimated:YES completion:nil];
相同的代码在其他应用程序中运行良好,但是当我将代码复制到新项目时,崩溃反复发生。 它发生在 ios 8.3 和 7.1 上,未在其他版本上测试。 任何帮助都会非常显着。
【问题讨论】:
如何在 ...didCancel 委托方法中隐藏UIImagePickerController
?
发布隐藏选择器视图的代码。
我认为您正在尝试将 nil 对象添加到视图中
@BadalShah:您能详细说明您要解释的内容吗?
请签入imagePickerControllerDidCancel
选择器是否有parentViewController
并添加请显示选择器代码。
【参考方案1】:
在.h
中设置委托
@interface YourViewController : UIViewController < UIImagePickerControllerDelegate, UINavigationControllerDelegate>
当你想打开它时初始化图像选择器。
UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
imgPicker.delegate = self;
imgPicker.allowsEditing = YES;
imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:imgPicker animated:YES completion:^ ];
委托方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
[picker dismissViewControllerAnimated:YES completion:nil];
【讨论】:
非常感谢,您节省了我很多时间。但真正的问题是 imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;在这里,我使用的是 UIModalPresentationCurrentContext,它导致我的新应用程序崩溃,但在以前的应用程序中没有。以上是关于UIImagePickerController 在第二次取消时崩溃的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 7 中呈现 UIImagePickerController 的问题
如何在 iPad 上关闭 UIImagePickerController
仅在横向 UIImagePickerController 中显示CameraControls
UIImagePickerController 在 iOS 11 上泄漏