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

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

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

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

您可以将多个button连接到一个动作,而无需一次全部选中。

但是,在创build操作之后,您需要保存包含操作的源文件,然后Xcode将允许您将另一个控件连接到操作。

我用Xcode 4.6.2做了这个:

连接按钮的行动

Swift 3.0 Xcode 8.0+

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

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

使用sender.tag来标识点击的button。

按照这个步骤

1.在View Controller中创buildIBAction

在.h文件中

 -(IBAction)action:(id)sender; 

在.m文件中

 -(IBAction)action:(id)sender{ } 

2。 将所有button连接到此操作

在这里输入图像说明

3。 按照下一个图片给每个button一个标签 在这里输入图像说明

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! } } 

跑,走。

你应该可以在IB做这个。 在IB中,只需将它们指向相关课程中的相同IBAction

当动作到来的时候,如果你想知道从哪个button得到了动作,你可以通过从button中读取文本或者使用IB应该设置的tag属性来区分IBAction方法中的button。

 - (IBAction)buttonClicked:(id)sender { NSLog(@"Button pressed: %@", [sender currentTitle]); NSLog(@"Button pressed: %@", [sender tag]); } 

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

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

在Xcode 5中,在为第一个button设置动作后,我必须构build应用程序。 这然后允许我连接其他button行动到这个相同的IBAction方法

在xcode 4.6.3中,在分配操作之前不需要保存。