Junior — Middle
Hogyan történik több hallgató kezelése, amelyek egy kattintási eseményhez vannak kötve?
sobes.tech MI
Válasz az MI-től
iOS-ben, ha egy eseményhez, például egy kattintáshoz (touchUpInside), több hallgató (target-action) van hozzárendelve, azok a hozzáadás sorrendjében hívódnak meg. Minden hallgató megkapja az eseményt és végrehajthatja saját logikáját.
Ha szeretné irányítani a sorrendet vagy megakadályozni a további feldolgozást, ezt a kezelőben kezelheti, például más hallgatók kikapcsolásával vagy zászlók használatával. Az UIKit alapértelmezett mechanizmusa nem nyújt beépített módot az esemény terjedésének megállítására a hallgatók között.
Példa több kezelő hozzáadására egy UIButton-hez:
button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)
@objc func firstHandler() {
print("Első kezelő")
}
@objc func secondHandler() {
print("Második kezelő")
}
Kattintáskor mindkét kezelő sorban hívódik meg.