0

Я пытаюсь использовать камеру, чтобы сделать снимок, а затем передать выбранную фотографию на другой контроллер View. Я использую segue, чтобы подтолкнуть изображение к следующему, но похоже, что он не получает изображение.Image Picker и нажатие изображения выбрано на новый контроллер вида

Прагма знак - Методы UIImagePickerDelegate

//delegate methode will be called after picking photo either from camera or library 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    [self.collectedImageView setImage:image]; 

    [self performSegueWithIdentifier:@"photoArea" sender:self]; 
} 

Прагма знак - Подготовка к Segue

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    MESSelectPhotoAreaViewController *photoAreaVC = [segue destinationViewController]; 

    photoAreaVC.photoImageView.image = self.collectedImageView.image; 
} 

ответ

2

Я предполагаю, что "photoAreaVC.photoImageView" по-прежнему нулевой, как destinationViewController не был полностью еще экземпляр.

И вы можете подтвердить это, добавив эту строку в «prepareForSegue:» метод: (? Например, свойство «UIImage» в контроллере представления назначения, возможно)

if (photoAreaVC.photoImageView == NULL) 
    NSLog(@"photoImageView doesn't yet exist"); 

Вам нужно найти место временно спрятать это изображение до тех пор, пока «viewDidAppear:» или «viewWillAppear:» не будет вызвано, где-то, где свойство «photoImageView» указывает на действительный объект.

+0

100% правильный. На самом деле мне не нужен UIImageView в моем первом экземпляре, поэтому я изменил его на изображение, а затем передал изображение в новый экземпляр образа контроллера и обновил представление изображения с помощью viewDidAppear. Спасибо – StuartM

+0

У меня есть эта точная проблема с моим приложением на данный момент, и этот ответ - лучшее, что я нашел до сих пор. Хотя, из интереса, как бы я «временно застреваю» мой образ, т.е. какой бит кода я мог бы поставить, где это сделать? – SixtySticks

+0

Одним из временных (или постоянных) мест хранения может быть свойство '' UIImage' для вашего объекта. –