swift - 多个按钮可实现一个操作,无需 IB

标签 swift uibutton action

在我的 View Controller 中,我有 10 个按钮。每个按钮都有一个标签,并且所有按钮都调用相同的操作(通过开关 (sender.tag) 分隔,case 0 -> case 9 以区分选择了哪个按钮)。 我用 IB 制作,将所有按钮 (@IBOutlet) 连接到同一个 @IBAction,一切都很好。但现在我想以编程方式完成此操作,无需 IB。

因此,我删除了 @IBOutlet@IBAction 以创建新按钮 (let myButton1 = UIBUtton()) 和一个新操作(func newAction(sender: UIButton))。我尝试使用 addTarget: 为所有新按钮使用相同的选择器,但应用程序崩溃了。

有人有解决办法吗?

最佳答案

这应该有效:

func newAction(sender: UIButton) {
    ...
}
...
myButton1.addTarget(self, action: "newAction:", forControlEvents: .TouchUpInside)
myButton2.addTarget(self, action: "newAction:", forControlEvents: .TouchUpInside)
myButton3.addTarget(self, action: "newAction:", forControlEvents: .TouchUpInside)

关于swift - 多个按钮可实现一个操作,无需 IB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32299608/

相关文章:

ios - 问题 : Transferring View Controllers through segue depending on what button is pushed

swift - Xcode 调试方案

ios - UIButton 在 iOS 7 中无法正常工作

ios - 对同一个 ViewController 使用不同的 swift 文件?

ios - 从另一个类访问 UIButton 不起作用?

ios - EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)在更改 uibutton 的标题标签大小更改时出现错误

c# - 接受匿名方法(Action<>、Func<>)作为参数有哪些安全隐患?

c# - 试图了解如何在 UI 线程上调用它

ios - 注释 map View (自定义标记)在 swift IOS 中不起作用

swift - 了解 Swift map 定义中的 Self.Generator.Element 是什么