Ios Can';t更改UIImageView的图像

Ios Can';t更改UIImageView的图像,ios,uiimageview,Ios,Uiimageview,h .m(将在视图中显示) 视图出现后,我无法使用以下命令更改photoImageView: photoImageView.image = photo; 但是更改photo的值是可行的 photoImageView.image = [UIImage imageNamed:@"XXX.png"]; 它是如何工作的?试试这段代码 photo = [UIImage imageNamed:@"XXX.png"]; 一些注释。 首先,您必须在XCode中正确链接您的photoImageViewIBO

h

.m(将在视图中显示)

视图出现后,我无法使用以下命令更改
photoImageView

photoImageView.image = photo;
但是更改
photo
的值是可行的

photoImageView.image = [UIImage imageNamed:@"XXX.png"];
它是如何工作的?

试试这段代码

photo = [UIImage imageNamed:@"XXX.png"];
一些注释。

首先,您必须在XCode中正确链接您的
photoImageView
IBOutlet。出于测试目的,我创建了一个链接到
iAction
的测试按钮(
UIButton
)。
UIImageView
和test按钮(我都是用IB创建的)是
YourController
视图的孩子

请记住将图像导入项目,并在
dealloc
viewDidUnload
中释放内存

//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"];
}
希望能有帮助

编辑


代码不是面向ARC的,但经过少量修改后,也可以使用ARC运行代码。

您是说,如果更改iVar“照片”,photoImageView中的图像也会更改吗?根据您目前展示的内容,它不应该这样做,但您可能需要发布更多代码,以便让我们更好地了解正在发生的事情。您是直接更改iVar还是使用属性访问器?如果您使用的是属性访问器,它是如何实现的?他不希望出现这种情况的解决方案。他只是想知道为什么会发生这样的事@samfisher你说得对!但提供我认为正确的步骤,可能有助于理解正在发生的事情。谢谢
//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"];
}
- (dealloc)
{
   [_photoImageView release];
   _photoImageView = nil;

   [super dealloc]
}

- (void)viewDidUnload
{
   [super viewDidUnload];

   self.photoImageView = nil;
}