Ranjit
Ranjit

Reputation: 4646

Changing Image of Button When the button is selected In Iphone

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

Answers (2)

utkal patel
utkal patel

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

rjgonzo
rjgonzo

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 .

Upvotes: 16

Related Questions