Обычно это происходит при возникновении проблем с памятью.Как в случае нехватки памяти, так и в некоторых случаях инициализация UICameraPickerController
освобождается при неправильном обращении к ней.
Лучший способ уменьшить или избежать этого - это когда вы пытаетесь получить к нему доступ во время выделения иинициализируйте его, и когда вы пытаетесь переместиться из вида камеры, просто отмените его.
Даже когда приложение переходит в фоновый режим, то есть сворачивает ULameraPicker и при входе на передний план, то есть снова максимизирует его, перераспределяет его.
По сути, я беру одно свойство, объявленное в файле .h , следующим образом:
@property (nonatomic, strong) UIImagePickerController *imagePicker;
Затем в файле .m его синтезируют., при необходимости, для меня на нажатие кнопки «Сфотографировать».Я использую следующую кодировку, чтобы показать контроллер средства выбора изображений.
if(self.imagePicker == nil || self.imagePicker == NULL)
imagePicker = [[UIImagePickerController alloc]init];
<Then put the code for use of picker.>
А затем при получении изображения в методе делегирования средства выбора imagePickerController:didFinishPickingMediaWithInfo
после сохранения изображения в правильном свойстве или iVar используйте следующеекод для освобождения экземпляра imagePicker.
self.imagePicker = nil;
Это решит проблему для меня.Пусть это также поможет вам решить и вашу.