Добрый день! Хочу вызвать функцию которая покажет Алерт по прошествии некоторого времени. Но Swift ругается на строчку
self.present(alert, animated: true, completion: nil)
Пишет Use of unresolved identifier ‘self’
Алерт по таймеру
Насколько я понимаю, эта строчка находится не в UIVIewController-e, в этом и проблема. У вас несколько вариантов - либо передавать в эту вашу функцию ViewController, в которой ее вызываете, либо искать текущий контроллер.
Если честно не особо понимаю, о каких контроллерах идет речь. Но у меня есть кнопка которая вызывает Алерт, у которого есть кнопки “напомнить через минуту” и ’ cancel’. По нажатии на кнопку “напомнить через минуту” я создал таймер который вызывает метод через минуту. В этом методе нужно создать Алерт и показать его, но self.present не наботает, пробовал просто present - результат такой же
Это код кнопки. Начало кода
@IBAction func btnAlertView_tapped(_ sender: UIButton)
{
var alert = UIAlertController(title: "Good morning", message: "You should go to university. When I can remind you", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "5min", style: UIAlertActionStyle.default, handler: nil))
alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
Вы не понимаете что такое UIViewController? Это основы основ, перед тем, как начинать что-то писать стоит почитать об этом.
Раз у вас: [quote=“davomere, post:1, topic:2551”]
Пишет Use of unresolved identifier ‘self’
[/quote]
значит
@IBAction func btnAlertView_tapped(_ sender: UIButton)
находится вне какого бы то ни было класса, а значит и self не существует т.к. self, грубо говоря - это ссылка на класс, в котором вы находитесь.