如何将故事板中的多个按钮连接到单个操作?

时间:2013-04-17 02:41:00

标签: ios objective-c uiview uibutton interface-builder

我目前正在使用Xcode 4.6,我只是想知道如何在不同的UIViews中选择多个按钮,但是在单个视图控制器下。 CMD点击似乎不起作用。我需要这个功能,因为在Xcode 4.6中,让IB上的两个按钮共享相同动作的唯一方法是一次选择它们,然后将动作拖动到视图控制器。

我的最终目标是在两个不同的UIViews上获得两个不同的按钮,以使用Xcode 4.6中的故事板来匹配相同的动作。有没有办法做到这一点?

编辑:我目前正在使用Xcode 4.6.1而没有任何运气,升级到4.6.2。

7 个答案:

答案 0 :(得分:75)

您可以将多个按钮连接到单个操作,而无需一次选择所有按钮。

但是,在创建操作之后,您需要保存包含操作的源文件,然后Xcode才能让您将另一个控件连接到该操作。

我用Xcode 4.6.2做了这个:

connecting buttons to action

答案 1 :(得分:9)

Swift 3.0 Xcode 8.0 +

将所有按钮连接到下面的方法签名。 确保参数发送者的类型为 UIButton(或UIButton的子类) ,以便从故事板中连接其余按钮。

@IBAction func dialconfigTapped(_ sender: UIButton) {}

使用 sender.tag 标识点击按钮。

答案 2 :(得分:8)

按照以下步骤

<强> 1。在View Controller中创建IBAction

在.h文件中

-(IBAction)action:(id)sender;

在.m文件中

-(IBAction)action:(id)sender{


}

2。将所有按钮连接到此操作

enter image description here

3。按照下一张图片为每个按钮添加标签 enter image description here

4。现在你的动作函数中放了这些

    -(IBAction)action:(id)sender{

        UIButton *button=(UIButton*)sender;

        if(button.tag==1){

            //your stuff!
        }
        if(button.tag==2){

            //your stuff!
        }
        if(button.tag==3){

            //your stuff!
        }

    }

跑步和跑步。

答案 3 :(得分:1)

您应该可以在IB中执行此操作。在IB中,只需将它们指向相关类中的IBAction即可。

当操作到来时,如果您想知道从哪个按钮获得操作,您可以通过阅读按钮中的文本或使用{{来区分IBAction方法中的按钮。 1}}你应该从IB设置的属性。

tag

答案 4 :(得分:0)

您可以使用IBOutletCollection以下链接来帮助您使用

http://useyourloaf.com/blog/2011/03/28/interface-builder-outlet-collections.html

答案 5 :(得分:0)

在Xcode 5中,在设置第一个按钮的操作后,我必须构建应用程序。这允许我将其他按钮动作连接到同一个IBAction方法

答案 6 :(得分:-2)

在xcode 4.6.3中 在分配行动之前你不再需要保存。