Reputation: 4646
I have two buttons on my first view,so when I click on one of the button the view changes,so I have two images one for the default state and one for the selected state, first i tried with xib,goin into the properties and changing the states and then selecting the proper images and when I build and run my code,On cliking the image doesnt change..
So I did this way through code
- (IBAction) handleButton:(id)sender
{
UIButton *button = (UIButton*)sender;
int tag = [button tag];
switch (tag)
{
case BUTTON_1:
if ([m_Button1 isSelected])
{
[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[m_Button1 setSelected:NO];
}
else
{
[m_Button1 setImage:[UIImage imageNamed:@"image_pressed.png"] forState:UIControlStateSelected];
[m_Button1 setSelected:YES];
}
[self displaymethod1];
break;
case BUTTON_2:
[self displaymethod2];
break;
default:
break;
}
}
here the image changes when i click on it and i go to diffrent view..when i again come back to my first view,the button is still in selected mode..so How shall i fix this..
Waiting for your reply
Upvotes: 1
Views: 22887
Reputation: 1421
when your view will appear then you have to initiate all the variable and UI property in view will appear method. (not necessary in all cases solution is only for your requirement)
There you can set your button default state and image.
-(void)viewWillAppear:(BOOL)animated
{
[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[m_Button1 setSelected:NO];
...
}
Upvotes: 0
Reputation: 1761
I think is a bit simpler through IB.
When you add a regular Round Rect Button
in IB you can modify its behavior by going to the Button
section in the Attributes Inspector
panel.
First select the images you want for it's default state by leaving the State Config
in Default
. There is an image
and a background image
properties for this. Once that is set, you can change the State Config
to Highlighted
and select the image you want to show when the button is highlighted.
NOTE: This is for xcode4.
Upvotes: 16