Да, к кнопке можно добавить несколько действий.
лично я бы предпочел, чтобы делегат подписался на кнопку.
Позвольте object
, который вы хотите добавить как target
, подписаться на метод делегата, чтобы он мог получать события, когда вы нажимаете кнопку.
или
Одно действие, которое перенаправляет событие другим методам для полного контроля
Простой тест в быстром
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let button = UIButton(frame: CGRect(x: 50, y: 50, width: 300, height: 30))
button.backgroundColor = .orange
button.addTarget(self, action: #selector(action1), for: .touchUpInside)
button.addTarget(self, action: #selector(action2), for: .touchUpInside)
button.addTarget(self, action: #selector(actionHandler), for: .touchUpInside)
self.view.addSubview(button)
}
@objc func actionHandler(_ sender: UIButton){
print("actionHandler")
action1(sender)
action2(sender)
}
@objc func action1(_ sender: UIButton) {
print("action1")
}
@objc func action2(_ sender: UIButton) {
print("action2 \n")
}
}
Вывод после одного клика:
action1
action2
actionHandler
action1
action2
Можете ли вы подтвердить порядок выполнения при обычном добавлении действий
Да, это выполняется в том порядке, в котором вы устанавливаете цели.