В моем приложении я использую UIActionSheet и UIImagePickerController. Action Sheet открывает опции (как выбрать фотографию, выбрать видео), а Image Picker Controller открывает библиотеку. Эта система работает хорошо для тестирования устройств iPhone, но для iPad, Action Sheet отлично работает, а контроллер Picker - нет.iOS - Контроллер выбора не открывается. Библиотека фотографий
Я установил необходимые разрешения для iOS10, для камеры и библиотеки фотографий. Это не может быть проблемой.
Мой код для выбора фото:
- (void)selectPhoto {
self.imagePickerController.delegate = self;
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
self.imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage, nil];
[self presentViewController:self.imagePickerController animated:YES completion:nil];
}
Необходимые методы делегата были написаны либо. И, как я уже говорил, все работает так, как должно быть в iPhone.
При попытке открыть фотобиблиотеку первый я получаю это предупреждающие сообщения:
[Предупреждение] < _UIPopoverBackgroundVisualEffectView 0x147c5ad0> это быть предложено анимировать его непрозрачность. Это вызовет эффект появляться сломаны до непрозрачности не возвращается к 1.
Ничего не сломано, приложение все еще работает (не замораживать). Однако, если я пытаюсь открыть библиотеку фотографий, на этот раз я получаю:
Предупреждения: Попытка представить на , который уже предъявлению (нуль)
Тогда проблема может быть проблемой поповера но я не смог найти ответ. Спасибо!
Edit: Мой поступок метод лист делегат:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
[actionSheet dismissWithClickedButtonIndex:buttonIndex animated:YES];
switch (buttonIndex) {
case 0:
[self selectPhoto];
break;
case 1:
[self selectVideo];
break;
default:
break;
}
}
Edit 2: Я нашел that:
На IPAD, вы должны представить интерфейс браузера, используя поповер в , описанной в initWithContentViewController: и Представление и Отклонение Popover в описании класса UIPopoverController. Если на iPad вы пытаетесь представить интерфейс браузера modally (полноэкранный), система вызывает исключение.
UIPopoverController теперь устарел. Таким образом, я должен использовать другой путь. Если кто-нибудь может мне помочь в этом, я был бы счастлив.
ли 'dismiss' вы ваш' UIActionSheetController' перед представлением 'UIImagePickerController'? –
У меня нет, но теперь я это сделал. Все такой же. – anyName
Пожалуйста, укажите дополнительный код для отклонения предупреждения. Вы должны убедиться в том, чтобы представить сборщик изображений в завершении. Иначе это не сработает. – Fogmeister