I put in a tolbar a bar button item, and I set it with a png (first.png) and when I push it I want to change its png in “second.png”
This code doesn’t work fine:
UIImage *first = [UIImage imageNamed:@"first.png"];
UIImage *second = [UIImage imageNamed:@"second.png"];
if ([sender isSelected])
{
[sender setImage:first forState:UIControlStateNormal];
[sender setSelected:NO];
}
else
{
[sender setImage:second forState:UIControlStateSelected];
[sender setSelected:YES];
}
The current answerers do not realize that
UIBarButtonItemdoes NOT inherit from UIButton, sosetImage:forState:will most definitely not work. UIBarButtonItems cannot be set for different states. You can, however, utilize something like this (declared in the UIBarItem docs):