Sobes.tech
Junior — Middle

Cum se gestionează mai mulți ascultători legați de același eveniment de clic?

sobes.tech AI

Răspuns de la AI

În iOS, dacă unui eveniment, de exemplu, un clic (touchUpInside), i se atașează mai mulți ascultători (target-action), aceștia sunt apelați în ordinea adăugării. Fiecare ascultător primește evenimentul și poate executa propria logică.

Dacă doriți să controlați ordinea sau să preveniți procesarea ulterioară, puteți gestiona acest lucru în interiorul handler-ului, de exemplu, dezactivând alți ascultători sau folosind steaguri. Cu toate acestea, mecanismul standard UIKit nu oferă o modalitate încorporată de a opri propagarea evenimentului între ascultători.

Exemplu de adăugare a mai multor handler-e la un UIButton:

button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)

@objc func firstHandler() {
    print("Primul handler")
}

@objc func secondHandler() {
    print("Al doilea handler")
}

La clic, ambii handler-e vor fi apelați în ordine.