UIButton remove all target-actions
I have added multiple target-action-forControlEvents: to a UIButton. I'd like to remove all of these in one go without deallocating anything. I will then set new targets.
Is this possible and how do I go about it?
Solution 1:
Call removeTarget:action:forControlEvents:, pass nil for the target, NULL for action, and use a control mask that sets all bits (UIControlEventAllEvents).
Objective-C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
Swift 2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3 or higher
button.removeTarget(nil, action: nil, for: .allEvents)
Solution 2:
@progrmr's answer in Swift 2:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
and Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
Note: Swift doesn't have NULL
, so I tested replacing it with nil
and it seems to work fine.
Solution 3:
Swift 3, 4, 5:
btnCancel.removeTarget(nil, action: nil, forControlEvents: UIControlEvents.AllEvents)