UIButton: UIAction ile kullanımı (+iOS14)
Bir ViewController
içerisinde kod ile bir Buton
tanımladığımızda action'larını tanımlamak için öncesinde @objc
ve #selector
ile init'de tanımlamak gerekiyordu. Ancak bu iOS 14 ve üzeri sürümlerde UIAction ile tanımlayabiliyoruz. Aşağıda @objc
fonksiyonlu ve UIAction
'lı kullanımı basit bir örnek gösterilmiştir.
@objc ve #selector ile
final class ViewController: UIViewController {
@IBOutlet private weak var counterLabel: UILabel!
@IBOutlet private weak var counterButton: UIButton!
var counter = 0 {
didSet {
counterLabel.text = "Counter: \(counter)"
}
}
override func viewDidLoad() {
super.viewDidLoad()
counterButton.addAction(self,
action: #selector(counterButtonTapped),
for: .touchUpInside)
}
@objc func counterButtonTapped() {
counter += 1
}
}
UIAction ile
final class ViewController: UIViewController {
@IBOutlet private weak var counterLabel: UILabel!
@IBOutlet private weak var counterButton: UIButton!
var counter = 0 {
didSet {
counterLabel.text = "Counter: \(counter)"
}
}
override func viewDidLoad() {
super.viewDidLoad()
counterButton.addAction(UIAction { [weak self] _ in
self?.counter += 1
}, for: .touchUpInside)
}
}