是否有可能在Swift中覆盖UIButton的动作方法?

cha*_*han 7 uibutton ios swift

我有一个UIButton.我想使用相同的方法UIButton来执行多个操作.首先,我以编程方式将操作设置为按钮.

button1.addTarget(self, action: #selector(ViewController.function1), forControlEvents: .TouchUpInside)
Run Code Online (Sandbox Code Playgroud)

接下来,我想丢弃该功能,并希望添加其他操作.

button1.addTarget(self, action: #selector(ViewController.function2), forControlEvents: .TouchUpInside)
Run Code Online (Sandbox Code Playgroud)

是否可以覆盖按钮的现有目标?

Sha*_*y P 6

的情况下你的建议不会覆盖以前的行动,但增加导致到该按钮的第二个动作ViewController.function1ViewController.function2被调用.

您需要先删除目标中的上一个操作,然后再使用添加新操作

button1.removeTarget(self, action: #selector(ViewController.function1), forControlEvents: .AllEvents)

或者在添加新操作之前删除所有先前的操作

button1.removeTarget(nil, action: nil, forControlEvents: .AllEvents)