swift addtarget как выполнить функцию при нажатии на переключатель
Друзья, есть таблица в контроллере, со списком имен... В нее я добавил в каждую строку переключатель UISwitch()...
как при нажатии на него запустить какой либо код, например функцию fireworks()?
Код моего маленького контроллера:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var names = ["Vasya", "Petya", "Nura", "Dunya", "Pavlel"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
tableView.delegate = self
tableView.dataSource = self
}
}
extension ViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("You tapped")
}
}
extension ViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return names.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = names[indexPath.row]
cell.accessoryView = UISwitch()
return cell
}
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: .destructive, title: "Удалить", handler: {
_,_ in print("delete \(indexPath.row)")
self.names.remove(at: indexPath.row)
print(self.names)
tableView.reloadData()
})
return [deleteAction]
}
@objc func fireworks() {
print("Бум!")
}
}
Вроде понимаю что через addTarget, но разобраться с ним не могу... Всем спасибо
Ответы (1 шт):
Автор решения: Klim Postironin
→ Ссылка
Создайте константу вашего UISwitch: let switch = UISwitch(), и уже к ней добавьте addTarget и передайте туда через #selector(fireworks)
switch.addTarget(self, #selector(fireworks))
(Код выше нужен для понимания, он не скомпилируется)