Ios 在选项卡之间切换时重置多个按钮的图像

Ios 在选项卡之间切换时重置多个按钮的图像,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我有一个屏幕,在那里我使按钮看起来像带有图像的复选框(checked.png和unchecked.png)。当我在选项卡之间切换时,我应该重置所有复选框(按钮),并使用unchecked.png。 我做过类似的事情 self->eatbuffet = NO; self->eatnonveg = NO; self->eatalcohol = NO; if (eatbuffet == NO || eatnonveg == NO || eatalcohol == NO) {

我有一个屏幕,在那里我使按钮看起来像带有图像的复选框(
checked.png
unchecked.png
)。当我在选项卡之间切换时,我应该重置所有
复选框(按钮)
,并使用
unchecked.png
。 我做过类似的事情

self->eatbuffet = NO;
self->eatnonveg = NO;
self->eatalcohol = NO;



if (eatbuffet == NO || eatnonveg == NO  || eatalcohol == NO) {

    [button setImage:[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];

}
这三个都是布尔值。 如果我选中一个并切换选项卡,它就会工作。但是如果我对2或3也这样做,它就不起作用了。
请帮忙

以下是一个可能对您有所帮助的小想法:

/*
 this method is called everytime your view is going to be shown.
 if your application is based on a tab view controller for example,
 this method will get called every time you go back to that view
*/
-(void) viewWillAppear {
    [super viewWillAppear];
    self.eatbuffet = NO;
    self.eatnonveg = NO;
    self.eatalcohol = NO;

    [button1 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
    [button2 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
    [button3 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
}

你可以这样做

-(void)checkBox:(UIButton*)button{

switch (button.tag) {
    case 0:{
        eatbuffet = button;
        [eatbuffet setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
        [eatnonveg setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
        [eatalcohol setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
    }
        break;
    case 1:
    {
        eatnonveg = button;
        [eatbuffet setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
        [eatnonveg setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
        [eatalcohol setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
    }
        break;
    case 2:
    {
        eatalcohol = button;

        [eatbuffet setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
        [eatnonveg setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
        [eatalcohol setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
    }
        break;

    default:
        break;
}
}


注意:必须设置标记0,1,2。。。。对于所有按钮。

只需为两种状态放置两个不同的图像,即:选定和默认。。当按钮更改其状态时,图像将更改

self.myButton.selected = YES/NO;

我在这里了解到的是,您只需更改1个按钮的图像。这就是你想做的吗?不,我应该重置所有按钮。我知道我还需要添加一些额外的代码,但不知道这一点。您是否有所有3个按钮的出口(参考s)?@downvoter,downvote的原因??