UIAlert в Swift, который автоматически исчезает после выхода из системы - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь представить предупреждение после выхода пользователя из системы.Я хочу, чтобы это исчезло, скажем, через 3 секунды.Я использовал какое-то решение для UIAlert в Swift, которое автоматически исчезает?

Ниже приведен мой код.Проблема, с которой я сталкиваюсь, заключается в том, что после выхода пользователя из системы я перехожу в другое представление (домашний VC), следовательно, я получаю сообщение об ошибке:

dismissAlert]: нераспознанный селектор отправлен на экземпляр

Как мне заставить это работать в этом сценарии?

let alert = UIAlertController(title: "", message: "Logged out", preferredStyle: .alert)

let cancelAction = UIAlertAction(title: "Ok", style: .cancel, handler: nil)

alert.addAction(cancelAction)

UIApplication.shared.keyWindow?.rootViewController!.present(alert, animated: true, completion: nil)

_ = Timer.scheduledTimer(timeInterval: Double(3), target: self, selector: Selector(("dismissAlert")), userInfo: nil, repeats: false)

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Как насчет использования scheduledTimer с блоком, который вызывается после интервала времени?Я думаю, что это решение Swift-Ier, то с помощью селектора ?

let alert = UIAlertController(title: "", message: "Logged out", preferredStyle: .alert)
...
Timer.scheduledTimer(withTimeInterval: 3, repeats: false) { _ in
    alert.dismiss(animated: true)
    // code from dismissAlert if it is necessary
}
0 голосов
/ 09 февраля 2019

Вы должны объявить свой метод таким образом

_ = Timer.scheduledTimer(timeInterval: Double(3), target: self, selector: #selector(dismissAlert), userInfo: nil, repeats: false)

@objc func dismissAlert() {
    // your works
}
...