Я знаю, что этот вопрос довольно часто задают на этом сайте, но на каждый вопрос, на который я смотрел, есть разные ответы, и я пробовал каждый из них.
У меня есть кнопка UIB, которую я поместил в свойраскадровка, и я подключил его к @IBAction в контроллере представления.Каждый раз, когда я нажимаю кнопку, она выдает ошибку -[UIViewController openAlert]: unrecognized selector sent to instance
Функция не имеет аргументов (я пробовал с аргументом отправителя, и она вызывает openAlertWithSender
вместо openAlert(sender:)
), и я решил, чтоподключение кнопки к переменной в верхней части класса будет работать, но это дало мне новую ошибку: This class is not key value coding-compliant
Я убедился, что кнопка правильно подключена к функции в раскадровке, и я сделалубедитесь, что в представлении включено взаимодействие с пользователем.
Я попытался создать кнопку программным способом, и она вообще не будет отображаться на экране.
Независимо от того, что я делаю, я не могупохоже, что эта кнопка работает.
Мой код:
class OfflineViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Hide the navigation bar
navigationController?.setNavigationBarHidden(true, animated: animated)
NetworkHandler.shared.addListener(listener: self)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Show the navigation bar
navigationController?.setNavigationBarHidden(false, animated: animated)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
NetworkHandler.shared.removeListener(listener: self)
}
private func showMainController() -> Void {
DispatchQueue.main.async {
self.performSegue(withIdentifier: "NetworkAvailable", sender: self)
}
}
@IBAction func openAlert() {
let alert = UIAlertController(title: "Clicked", message: "You have clicked on the button", preferredStyle: .alert)
self.present(alert, animated: true, completion: nil)
}
}
Любая помощь приветствуется.