带有数组参数的多按钮相同事件

时间:2014-03-27 21:12:03

标签: ios event-handling uibutton

我有10个按钮。所有10个按钮需要执行相同的操作,但需要使用其他变量(1个按钮类型,一个字符串类型等)。

我可以在按钮事件中将单维数组作为参数发送吗?

我使用此代码:

[btn_gv_tl1 addTarget:self action:@selector(click_gv_tl1) forControlEvents:(UIControlEvents)UIControlEventTouchDown]; 

我使用10种不同的方法将这个代码在其他代码下10次。我想用一组参数调用相同的方法。

可能吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个用于说明的小代码

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIButton *btn_gv_tl1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn_gv_tl1.frame = CGRectMake( 10, 10, 100, 43 );
    [btn_gv_tl1 setTitle:@"tl1" forState:UIControlStateNormal];
    [btn_gv_tl1 addTarget:self action:@selector(click_gv_tl1:) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:btn_gv_tl1];
}

- (void)click_gv_tl1
{
    NSLog( @"some button was pressed" );
}

- (void)click_gv_tl1:(UIButton *)sender
{
    NSLog( @"%@", sender.titleLabel.text );
}

调用第一个打印方法"按下某个按钮"之间的唯一区别并调用第二个方法是@selector中的冒号。换句话说,使用@selector(click_gv_tl1)调用第一个方法,或使用@selector(click_gv_tl1:)调用第二个方法。

在第二种方法中,参数是按下的按钮的按钮对象。您可以查看按钮标题以查看按下了哪个按钮,或者您可以为每个按钮指定tag,并根据sender.tag确定按下了哪个按钮。