Sobes.tech
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.