#ios #objective-c #swift #uiimageview #uiimagepickercontroller
#iOS #objective-c #swift #uiimageview #uiimagepickercontroller
Вопрос:
Я создаю контроллер представления типа настройки / редактирования следующим образом:
EditViewController *editController = [storyboard instantiateViewControllerWithIdentifier:@"parent"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:editController];
editController.delegate = self;
navController.modalPresentationStyle = UIModalPresentationPopover;
[self presentViewController:navController animated:YES completion:nil];
ПРИМЕЧАНИЕ: EditViewController является подклассом UITableViewController, а «self» — это просто основной контроллер представления навигации.
Теперь из этого представленного контроллера навигации / контроллера просмотра есть UIImageView, который пользователь может заполнить, сделав снимок с камеры, что они делают с помощью действия кнопки:
- (IBAction)takePhotoForImageView:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
picker.modalPresentationStyle = UIModalPresentationFullScreen;
[self showViewController:picker sender:self];
// [self presentViewController:picker animated:YES completion:nil];
}
Код выполняется без сбоев, но я получаю следующее в отладчике:
[Camera] Failed to read exposureBiasesByMode dictionary: Error Domain=NSCocoaErrorDomain
Code=4864 "*** -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]: data
is NULL" UserInfo={NSDebugDescription=*** -[NSKeyedUnarchiver
_initForReadingFromData:error:throwLegacyExceptions:]: data is NULL}
[Presentation] Attempt to present <UIImagePickerController: 0x11d00fe00> on
<UINavigationController: 0x11e009c00> (from <EditViewController: 0x11d010c00>)
while a presentation is in progress.
Я понятия не имею о первой ошибке, но предполагаю, что она связана со второй.
Что касается второй ошибки / предупреждения (?), отклонение первого представленного контроллера перед представлением UIImagePickerController не является вариантом.
Итак, вопрос в том, как правильно запустить UIImagePickerController (с исходным типом UIImagePickerControllerSourceTypeCamera) из другого контроллера представления, который также представлен?
Комментарии:
1. Второе предупреждение является нормальным, когда вы представляете VC, когда он уже представлен,
exposureBiasesByMode
похоже, это ошибка, связанная с камерой. Появляется ли это предупреждение на всех устройствах / симуляторе?2. @ItayBrenner даже я сталкиваюсь с такой же проблемой только в iOS14. А также некоторое время средство выбора не сжимает видео.