Xcode:如何从对象中删除动作?

Nik*_*sen 2 cocoa-touch objective-c uibutton target-action

我需要从对象中删除一个动作,然后添加一个新动作.

我已使用此代码添加新操作:

[Button addTarget:self action:@selector(newAction:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用此代码删除旧操作:

[Button removeTarget:self action:@selector(oldAction:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

问题是它以某种方式也删除了newAction.

有任何想法吗?

提前致谢 :)

SK9*_*SK9 5

在这种情况下,一个简单的解决方案是在添加新操作之前先删除旧操作.即反过来做.

您也可以通过传递nil目标来删除所有操作.

  • 将nil传递给目标不会导致删除所有操作:参数:target目标对象 - 即操作消息发送到的对象.如果这是零,则在响应者链**中搜索愿意响应动作消息**的对象. (2认同)