Just set the image property for UIImageView :
imageView.image = [UIImage imageNamed:@"Themes.png"];
You also have a syntax error in implementing your method, getting rid of the semicolon ( ; ) after your method signatures.
If I were developing this class, I would use one action method and use the tag property of the sender argument to index into an array of NSString objects. (For the first button, tag will be 0 , and the second will be 1 , etc.)
You should rename your UIImageView ivar to imageView to reduce ambiguity.
@interface BGViewController : UIViewController { IBOutlet UIImageView *imageView; } @property (nonatomic, retain) IBOutlet UIImageView *imageView; -(IBAction)changeImage:(id)sender; @end @implementation BGViewController NSString *images[] = { @"Main.png", @"Themes.png" }; @synthesize imageView; -(IBAction)changeImage:(id)sender { imageView.image = [UIImage imageNamed: images[sender.tag]]; } @end
Jacob Relkin
source share