Sobes.tech
Junior — Middle

Как се обработват няколко слушателя, свързани с едно събитие на клик?

sobes.tech AI

Отговор от AI

В iOS, ако към едно събитие, например клик (touchUpInside), са свързани няколко слушателя (target-action), те се извикват в реда на добавяне. Всеки слушател получава събитието и може да изпълни своята логика.

Ако трябва да контролирате реда или да предотвратите по-нататъшната обработка, можете да го управлявате вътре в обработчика, например, като деактивирате други слушатели или използвате флагове. Стандартният механизъм на UIKit обаче не предоставя вградена възможност да спре разпространението на събитието между слушателите.

Пример за добавяне на няколко обработчика към UIButton:

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

@objc func firstHandler() {
    print("Първи обработчик")
}

@objc func secondHandler() {
    print("Втори обработчик")
}

При клик и двата обработчика ще бъдат извикани последователно.