我有10个按钮。所有10个按钮需要执行相同的操作,但需要使用其他变量(1个按钮类型,一个字符串类型等)。
我可以在按钮事件中将单维数组作为参数发送吗?
我使用此代码:
[btn_gv_tl1 addTarget:self action:@selector(click_gv_tl1) forControlEvents:(UIControlEvents)UIControlEventTouchDown];
我使用10种不同的方法将这个代码在其他代码下10次。我想用一组参数调用相同的方法。
可能吗? 谢谢!
答案 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
确定按下了哪个按钮。