报错方式:
Warning: Attempt to present <UIImagePickerController: 0x15c8a0000> on <***Controller: 0x15c53cc50> which is already presenting (null)
解决方案:
/** 调用相册 */
- (void)openPhotoAlbum {
[self openPhotoAlbumOrCamera:UIImagePickerControllerSourceTypePhotoLibrary];
}
/** 调用摄像头 */
- (void)openCamera {
BOOL isCamera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
if (!isCamera) {
HUDNormal(@"当前设备没有摄像头");
return;
}
[self openPhotoAlbumOrCamera:UIImagePickerControllerSourceTypeCamera];
}
- (void)openPhotoAlbumOrCamera:(UIImagePickerControllerSourceType)type {
self.imagePicker.sourceType = type;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
__weak typeof(self) ws = self;
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[ws presentViewController:self.imagePicker animated:YES completion:nil];
}];
} else {
[self presentViewController:self.imagePicker animated:YES completion:nil];
}
}