所以,请注意,我绝对是个初学者。在XCode中,是否可以在动作中引用按钮的名称?所以我想使用if语句来检查按钮的名称(我也用它作为按钮后面的图像的名称)是否在一个已经创建的数组中。我已经在storyboard中创建了按钮,并将其链接到。h文件中,如
- (IBAction)s11:(id)sender;
到目前为止,我在.m文件中得到的(与按钮有关)是:
- (IBAction)s11:(id)sender {
if ( )
}
由于您需要检查按钮的名称,请使用以下代码:
- (IBAction)s11:(id)sender {
UIButton *btn = (UIButton *)sender;
if ([btn.titleLabel.text isEqualToString:@"BUTTON_NAME"]){
// do your stuff
}
}
sender是指向您单击的按钮的指针。你可以将它强制转换为UIButton并做任何你需要的事-检查它的标题,标签,等等
你可以为每个按钮(属性检查器)分配一个"tag"属性,并在你的代码中检查
- (IBAction)s11:(id)sender {
switch(sender.tag) {
case 1: {
...
}
case 2: {
...
}
...
}
}
您可以使用titleForState:
或currentTitle
方法。由于当前的标题可以根据按钮状态而改变,我建议使用titleForState:
。
- (IBAction)s11:(UIButton *)button {
NSString *title = [button titleForState:UIControlStateNormal];
if ([self.theArray containsObject:title]) {
// code
}
}
这不是区分按钮的最好方法,但是你要求这样做。最好是将这些按钮放在数组中。
- (IBAction)s11:(id)sender {
UIButton *btn=sender;
if ([yourArray containsObject:[btn titleForState:UIControlStateNormal]]) {
}
试试....
你可以为每个按钮指定一个"tag"属性
- (IBAction)s11:(id)sender
{
int i = [sender tag];
NSLog(@"Button tag : %i",i);
if (i == 0)
{
NSLog(@"btn 1 clk");
}
if (i == 1)
{
NSLog(@"btn 2 clk");
}
}
希望有帮助。
如果你想在你的实现文件中全局引用按钮,你有两个选择:
选项A:为Button创建一个IBOutlet,并使用指定的outlet指针名称。选项B:给你的UIButton一个唯一的标签,然后通过它的标签访问它,使用这个:
UIButton *myButton = (UIButton*)[self.view viewWithTag:255];
这里的标签号是255,但您应该使用自己的标签号