.H
IBOutlet UIImageView *photoImageView;
UIImage *photo;
Run Code Online (Sandbox Code Playgroud)
.m(在viewWillAppear中)
photoImageView.image = photo;
Run Code Online (Sandbox Code Playgroud)
视图出现后,我无法改变photoImageView使用:
photoImageView.image = [UIImage imageNamed:@"XXX.png"];
Run Code Online (Sandbox Code Playgroud)
但改变了photo作品的价值.
photo = [UIImage imageNamed:@"XXX.png"];
Run Code Online (Sandbox Code Playgroud)
它是如何工作的?
试试这个代码.
//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"];
}
Run Code Online (Sandbox Code Playgroud)
一些笔记.
首先,您必须photoImageView在XCode中正确链接您的IBOutlet.出于测试目的,我创建了一个UIButton链接到的测试按钮()IBAction.的UIImageView和测试按钮(I创建都与IB)是儿童的YourController图.
请记住将图像导入项目并在其中dealloc和内部释放内存viewDidUnload.
- (dealloc)
{
[_photoImageView release];
_photoImageView = nil;
[super dealloc]
}
- (void)viewDidUnload
{
[super viewDidUnload];
self.photoImageView = nil;
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
编辑
代码不是面向ARC的,但几乎没有修改,也可以使用ARC运行它.