358 Stimmen

UIButton entfernt alle Ziel-Aktionen

Ich habe mehrere target-action-forControlEvents: zu einer UIButton hinzugefügt. Ich möchte alle diese in einem Rutsch zu entfernen, ohne deallocating etwas. Ich werde dann neue Ziele setzen.

Ist dies möglich und wie gehe ich dabei vor?

872voto

progrmr Punkte 73486

Rufen Sie an. removeTarget:action:forControlEvents: übergeben Sie nil für das Ziel, NULL für die Aktion, und verwenden Sie eine Kontrollmaske, die alle Bits setzt (UIControlEventAllEvents).

Objektiv-C

[someControl removeTarget:nil 
                   action:NULL 
         forControlEvents:UIControlEventAllEvents];

Mauersegler 2

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

Swift 3 oder höher

button.removeTarget(nil, action: nil, for: .allEvents)

97voto

Hlung Punkte 13102

Antwort von @progrmr in Swift 2:

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

und Swift 3:

button.removeTarget(nil, action: nil, for: .allEvents)

Hinweis: Swift hat keine NULL Deshalb habe ich getestet, ihn durch nil und es scheint gut zu funktionieren.

9voto

Iya Punkte 1858

Mauersegler 3, 4, 5:

btnCancel.removeTarget(nil, action: nil, forControlEvents: UIControlEvents.AllEvents)

8voto

Riajur Rahman Punkte 1850

Mauersegler 2:

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

Swift 3 & 4:

actionButton.removeTarget(nil, action: nil, for: .allEvents)

Objektiv-C:

[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];

4voto

UdayM Punkte 1665
- removeTarget:action:forControlEvents:

Diese Methode stoppt die Zustellung von Ereignissen an das angegebene Zielobjekt.

  1. Festlegen einer gültiges Objekt im Zielparameter, stoppt diese Methode die Zustellung der angegebenen Ereignisse an alle mit diesem Objekt verbundenen Aktionsmethoden.

  2. Angabe von null für den Zielparameter, verhindert diese Methode die Zustellung dieser Ereignisse an alle Aktionsmethoden aller Zielobjekte

    objektiv-c:

    [_myButton removeTarget:  //any validObject (or) nil
                  action:nil
        forControlEvents:UIControlEventAllEvents]; 

    schnell:

    myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)

Für weitere Einzelheiten https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents :

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X