Алерт по таймеру

xcode
ios
swift

#1

Добрый день! Хочу вызвать функцию которая покажет Алерт по прошествии некоторого времени. Но Swift ругается на строчку
self.present(alert, animated: true, completion: nil)
Пишет Use of unresolved identifier ‘self’


#2

Насколько я понимаю, эта строчка находится не в UIVIewController-e, в этом и проблема. У вас несколько вариантов - либо передавать в эту вашу функцию ViewController, в которой ее вызываете, либо искать текущий контроллер.


#3

Если честно не особо понимаю, о каких контроллерах идет речь. Но у меня есть кнопка которая вызывает Алерт, у которого есть кнопки “напомнить через минуту” и ’ 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)
    }

#4

Вы не понимаете что такое UIViewController? Это основы основ, перед тем, как начинать что-то писать стоит почитать об этом.

Раз у вас: [quote=“davomere, post:1, topic:2551”]
Пишет Use of unresolved identifier ‘self’
[/quote]

значит

 @IBAction func btnAlertView_tapped(_ sender: UIButton)

находится вне какого бы то ни было класса, а значит и self не существует т.к. self, грубо говоря - это ссылка на класс, в котором вы находитесь.