有没有办法让视图上的所有UIButton
使用相同的Touch Up Inside
处理程序?或者使用Interface Builder
?
答案 0 :(得分:4)
是。控制按照通常的方式将第一个按钮拖动到头文件中并创建操作。然后在.xib文件中,将每个其他按钮连接到文件的所有者,并选择刚刚创建的相同操作。
在.xib文件中,查看“视图”窗格上的“属性”检查器。您可以单独为每个按钮设置标记。然后你可以使用以下代码......
- (IBAction)myButtons:(id)sender {
switch ([(UIButton *)sender tag]) {
case 0:
// code for first button
break;
case 1:
// code for second button
break;
case 2:
// code for third button
break;
default:
break;
}
}
答案 1 :(得分:2)
是的,您可以将相同的IBAction附加到任意数量的按钮事件中。启动操作的实际按钮将作为参数传递给IBAction,您可以在那里进行区分(如果需要)。
答案 2 :(得分:2)
从多个按钮进行与目标/动作相同的IBAction没有问题。只需在IB中绑定多个
程序化的等价物是:
[button1 addTarget:self action:@selector(oneAction:) forControlEvents:UIControlEventTouchUpInside];
[button2 addTarget:self action:@selector(oneAction:) forControlEvents:UIControlEventTouchUpInside];
答案 3 :(得分:1)
当然,为什么不呢?只需控制 - 从每个按钮拖动到代码中的相同IBAction方法。但是,该方法必须由一个巨大的if
语句组成,以确定它是什么按钮以及响应时应该做什么,因为你肯定不希望所有这些按钮做同样的事情。