2013-12-20 3 views
-1

Я получаю предварительный просмотр черного изображения. Это НЕ произойдет, если я удалю приложение, а затем запустите его снова. Поэтому при первом запуске приложения после установки на мое устройство оно работает. Однако, если после этого я подниму свой контроллер выбора изображений и захватит изображение, предварительный просмотр будет черным. Я прочитал все ответы, в которых упоминается фоновый поток, но я не выполняю никаких фоновых потоков. Я не уверен, что вызывает это. Он работает отлично в первый раз, но после этого он никогда не работает.black UIImagePicker preview ios7

- (void)viewWillAppear:(BOOL)animated { 

    [super viewWillAppear:animated]; 

    //Image Picker settings 
    self.imagePicker = [[UIImagePickerController alloc] init]; 
    self.imagePicker.delegate = self; 
    self.imagePicker.allowsEditing = NO; 


    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

     self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    } else { 

     self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    } 

    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType]; 

    [self presentViewController:self.imagePicker animated:NO completion:nil]; 

    } 

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

     NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

     if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 

      //dismiss view controller 
      [self dismissViewControllerAnimated:YES completion:nil]; 
     } 
    } 

ответ

0

Не отображать подборщик изображений из метода viewDidLoad вашего контроллера. Когда выполняется viewDidLoad, ваш контроллер просмотра еще не добавлен в иерархию контроллера представления. Вы можете попробовать представить его с viewDidAppear, и это может исправить его.

+0

не исправить. будет обновлять мой вопрос, хотя – Stonep123

+0

Вы не называете [super viewWillAppear: анимированные] в соответствии с вашим редактированием, и мой ответ сказал, чтобы сделать это в viewDidAppear :, not viewWillAppear :, потому что в viewWillAppear :, он все еще не соответствует точке где вы должны попытаться представить что-нибудь из него. – Gavin

+0

Должно быть в viewWill, если я поставлю его в viewDid, мой вид виден на секунду до того, как появится панель выбора изображений. – Stonep123

Смежные вопросы