Cambiar la image de una vista UIImage con un button

Hola, tengo un ImageView en mi aplicación y quiero que el usuario pueda cambiar la image en esa vista de image haciendo clic en un button. Este es el código que obtuve

En .h

@interface BGViewController : UIViewController { IBOutlet UIImageView *image; } @property (nonatomic, retain) IBOutlet UIImageView *image; -(IBAction)img1:(id)sender; -(IBAction)img2:(id)sender; 

y en .m

 @synthesize image; -(IBAction)img1:(id)sender; { UIImage *image = [UIImage imageNamed: @"Main.png"]; } -(IBAction)img2:(id)sender; { UIImage *image = [UIImage imageNamed: @"Themes.png"]; } 

¡Hay un button para cada image por cierto!

La aplicación crea, pero cuando hago clic en cualquiera de los botones no pasa nada.

Reemplazar

 UIImage *image = [UIImage imageNamed: @"Main.png"]; 

y

 UIImage *image = [UIImage imageNamed: @"Themes.png"]; 

con

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

y

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

Ahora debería funcionar bien 🙂

Simplemente configure la propiedad de la image de UIImageView :

 imageView.image = [UIImage imageNamed:@"Themes.png"]; 

También tiene un error de syntax en las implementaciones de su método, elimine el punto y coma ( ; ) después de las firmas de su método.

Si estuviera diseñando esta class, utilizaría un método de acción y utilizaría la propiedad de tag del argumento del sender para indexar en una matriz de objects de NSString . (Para el primer button, la tag sería 0 , mientras que el segundo sería 1 , etc.)

Debe cambiar el nombre de su UIImageView ivar a imageView para networkingucir la ambigüedad.

 @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