Не могу изменить изображение UIImageView - PullRequest
4 голосов
/ 14 января 2012

.h

IBOutlet UIImageView *photoImageView;
UIImage *photo;

.m (в представленииWillAppear)

photoImageView.image = photo;

После появления просмотра я не могу изменить photoImageView с помощью:

photoImageView.image = [UIImage imageNamed:@"XXX.png"];

, но изменение значения photo работает.

photo = [UIImage imageNamed:@"XXX.png"];

Как это работает?

1 Ответ

5 голосов
/ 14 января 2012

Попробуйте этот код.

//YourController.h

@interface YourController : UIViewController
{
    UIImageView* _photoImageView;
}

@property (retain, nonatomic) IBOutlet UIImageView *photoImageView;

- (IBAction)changeImageAction:(id)sender;

@end

//YourController.m

@synthesize photoImageView = _photoImageView;

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.photoImageView.image = [UIImage imageNamed:@"img.png"];
}

- (IBAction)changeImageAction:(id)sender {

    self.photoImageView.image = [UIImage imageNamed:@"img_2.png"];
}

Некоторые примечания.

Прежде всего, вы должны правильно связать свой photoImageView IBOutlet в XCode.Для целей тестирования я создал тестовую кнопку (UIButton), которая связана с IBAction.UIImageView и кнопка тестирования (я создал оба с помощью IB) являются потомками вида YourController.

Не забудьте импортировать изображения в проект и освободить память в dealloc и viewDidUnload.

- (dealloc)
{
   [_photoImageView release];
   _photoImageView = nil;

   [super dealloc]
}

- (void)viewDidUnload
{
   [super viewDidUnload];

   self.photoImageView = nil;
}

Надеюсь, это поможет.

Редактировать

Код не ориентирован на ARC, но с небольшими изменениями его можно запустить такжес ARC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...