UIImagePickerController в раскадровке: UIImagePickerControllerSourceTypePhotoLibrary отображает черный экран

У меня есть раскадровка, где я создал экземпляр UINavigationController и установил свой пользовательский класс в UIImagePickerController .

Если я устанавливаю imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera в prepareForSegue , все работает нормально.

Если я устанавливаю imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary в prepareForSegue , я получаю в основном черный экран с пустой серой полосой сверху, которую я не могу уволить:

[будущее местоположение снимка экрана – я не могу отправлять изображения]

Я могу обойти это, не используя раскадровку. Вопрос, который у меня есть, можно ли сделать, чтобы работать с раскадрой? Если нет, почему бы и нет? Почему это работает только для представления камеры?

EDIT: коллега комментирует, что это может быть новая проблема для ios7

Код ниже не работает, если сеанс запускается раскадрой

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSAssert([segue.destinationViewController isKindOfClass:[UIImagePickerController class]], @"Destination VC should be UIImagePickerController"); UIImagePickerController *imagePicker = (UIImagePickerController*) segue.destinationViewController; imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; imagePicker.allowsEditing = YES; imagePicker.delegate = self; } 

Этот вопрос является дубликатом iOS7 Storyboard image picker не работает 🙁

Ответ там:

Инициализировать контроллер UIImagePickerController *controller = [[segue destinationViewController] init];

… похоже, работает для большинства людей, поэтому я рекомендовал, чтобы это было закрыто как дубликат этого вопроса, на который был дан ответ на некоторое время.

Определенно странно. Единственное решение, которое я нашел до сих пор, здесь: ios7-раскадровка-выборщик-не-рабочий

По той же причине вы должны вручную запустить UIImagePickerControllerInstance. Я предполагаю, что есть что-то напуганное с помощью метода initWithCodec UIImagePicker, но его трудно сказать без доступа к исходному коду (спасибо за Apple …).

PS Убедитесь, что вы также используете правильный тип segue. UIImagePickerController придирчив к тому, как отображается каждый режим. «Камера» может быть модальной или popover (модальный рекомендуется). PhotoLibrary ДОЛЖНА отображаться с использованием popover.

  • Белый экран после отклонения UIImagePickerController на iOS 5?
  • Как использовать и редактировать с помощью UIImagePicker - UIImagePickerController.allowsEditing = YES
  • Как вы можете включить панорамную камеру iOS 6.0 в приложении?
  • Crop Square в iOS 8 UIImagepicker вне центра
  • UIImagePickerController не запрашивает разрешения для iOS 9
  • Изменение размера вкладки камеры в iphone5
  • Как представить ViewController с помощью UIImagePickerController
  • ios 9.3 Проблема памяти UIImagePickerController
  • Отклонить UIImagePickerController
  • Ввод режима редактирования UIImagePickerController
  • UIImagePickerController заставляет изображения в других представлениях в полный размер
  • Interesting Posts
    Давайте будем гением компьютера.