2014-02-16 5 views
0

У меня есть два контроллера вида: продукты Просмотр контроллера и просмотр подробного контроллера. Когда пользователь удаляет ячейку в UITableView, он переходит к контроллеру подробного представления. Контроллер подробного представления имеет UIImageView в нем имена imageEq. Я пытаюсь установить изображение в Контроллере представлений продуктов. Вот как я это делаю:Добавление изображения в UIImageView в отдельном классе

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"pushDetailView"]) 
    { 
     DetailViewController *dvc; 
     UIImage *pic = [UIImage imageNamed:@"HorseImage.png"]; 
     [dvc.imageEq setImage:pic]; 
     NSLog(@"Pic should be set"); 
} 
........ (non relevant code) 
} 

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

ответ

1

Если вы замените указатель DetailViewController на этот код ниже, он должен работать на вас.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"pushDetailView"]) 
    { 
     UIImage *pic = [UIImage imageNamed:@"HorseImage.png"]; 

     [[segue destinationViewController] setDetailImage:pic]; 

     NSLog(@"Pic should be set"); 
} 

Надеется, что это помогает, Спасибо Джим.

EDIT

Добавьте следующее свойство в файле заголовка DetailViewController в

@property (strong, nonatomic) UIImage *detailImage; 

И в viewDidLoad вашего файла .m DetailViewController, добавьте следующие

self.imageEq.image = _detailImage; 

Я надеюсь, эта обновленная ответная помощь.

+0

Потрясающие спасибо большое. Однако, когда я пытаюсь это сделать, я получаю предупреждение «несовместимые типы указателей, отправляющих« uiimage »в параметр типа« uiimageview », я не знаю, как это решить. – John

+1

Этот код установит UIImage, хотя я считаю, что imageEq - это UIImageView. Я добавлю код для вас, чтобы поместить в ваш заголовочный файл вашего DetailViewController, и это будет сортировать его, приветствия –

+0

Большое вам спасибо! – John

1

изменить Также

[[segue destinationViewController] setImageEq:pic]; 

в

[[segue destinationViewController] setImageEq:[[UIImageView alloc] initWithImage:pic]]; 
+0

Спасибо. Однако после внесения изменений изображение остается пустым, я дважды проверяю и подключается розетка, нет опечаток, и изображение импортируется. – John

+0

Добавьте 'NSLog (@"% @ ", [segue destinationViewController]);' чтобы проверить правильность инициализации [segue destinationViewController]. – Avt

+0

Спасибо, прочитанный NSLog был «», поэтому он, похоже, имеет. Кроме того, для 'setImageEq', UIImageView называется' imageEq', будет ли капитализация i в этом случае? – John

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