如何将多个UIButtons连接到单个IBAction并接收事件?

时间:2015-03-26 01:48:25

标签: ios swift

我在视图控制器中创建了一个函数,如下所示:

    @IBAction func dayOfWeekActions(sender: UIButton) {

    }

然后我将该功能连接到多个按钮,这些按钮将“Touch Up Inside”操作适当地连接到它(Connections检查器显示正确的连接)。

然而,当我点击按钮时,这个功能永远不会被调用。

为什么函数不会被调用?连接这些时我错过了什么?

1 个答案:

答案 0 :(得分:0)

我记得自己经历过这个问题。我无法找到一种方法来使用IB来做到这一点(但我记得在之前的Xcode版本中这是可能的)

另一种方法是将所有按钮连接到Outlet Collection,然后在viewDidLoad中迭代整个集合,同时addTarget:action:forControlEvents:to each buttons。

@IBOutlet var buttons: [UIButton]!

override func loadView() {
  super.loadView()
  for button in buttons {
    button.addTarget(self, action: "dayOfWeekActions:", forControlEvent: .TouchUpInside)
  }


}