ios多个UI按钮使用一个处理程序(通过IB)

ios多个UI按钮使用一个处理程序(通过IB),ios,interface-builder,Ios,Interface Builder,有没有办法让视图上的所有ui按钮s在处理程序内部使用相同的润色?或者使用界面生成器将所有按钮设置为同一个代理?是的,您可以将相同的iAction附加到任意多个按钮事件。启动该操作的实际按钮将作为参数传递给iAction,您可以在那里对其进行区分(如果需要)。从多个按钮将同一iAction作为目标/操作没有问题。只需在IB中绑定多个 程序等效物为: [button1 addTarget:self action:@selector(oneAction:) forControlEvents:UICon

有没有办法让视图上的所有
ui按钮
s在处理程序内部使用相同的
润色?或者使用
界面生成器将所有按钮设置为同一个代理

是的,您可以将相同的iAction附加到任意多个按钮事件。启动该操作的实际按钮将作为参数传递给iAction,您可以在那里对其进行区分(如果需要)。

从多个按钮将同一iAction作为目标/操作没有问题。只需在IB中绑定多个

程序等效物为:

[button1 addTarget:self action:@selector(oneAction:) forControlEvents:UIControlEventTouchUpInside];

[button2 addTarget:self action:@selector(oneAction:) forControlEvents:UIControlEventTouchUpInside];

当然可以,为什么不呢?只需控制从每个按钮到代码中相同iAction方法的拖动。但是,该方法必须由大量的
if
语句组成,以确定它是哪个按钮以及它应该如何响应,因为您肯定不希望所有这些按钮都执行相同的操作。

是。控件以通常的方式将第一个按钮拖动到头文件中并创建操作。然后在.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;
    }
}

我经常遇到这种情况,因为人们从Android和Flash迁移到iOS。更多信息,请参阅下面的我的帖子。