Я просто хотел бы получить второе мнение о том, есть ли какая-либо непредвиденная проблема с вызовом функций IBAction рекурсивно. Я задаю этот вопрос из-за аварии, которая произошла однажды, и мне было трудно воспроизвести ее.@IBAction рекурсивный вызов
Пусть у нас есть этот призыв:
var allowedToSend = false
@IBAction func emailButtonPressed(sender: UIButton) {
if !allowedToSend {
let controller = UIAlertController(title: title,
message: "Are you sure you want to send the Email?",
preferredStyle: .Alert)
controller.addAction(UIAlertAction(title: "Yes please, send.", style: .Default, handler: {
action in
self.allowedToSend = true;
self.emailButtonPressed(sender) // call self again
}))
controller.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: nil))
presentViewController(controller, animated: true, completion: nil)
return // exit the function
}
// Reset the value
allowedToSend = false
// Sending code
let text = textArea.text
let to = toLabel.text
....
}
Это правильный способ вызвать @IBAction
рекурсивно Swift?
Это не просто делает UIAlertController снова и снова? –
Что вы пытаетесь сделать? Вы удалили слишком много окружающего кода, чтобы можно было сказать, что вы делаете что-то неправильно. – dan
'IBAction' - это тот же метод, что и любой другой. Нет никакой разницы, 'IBAction' - всего лишь подсказка для xcode. Ваша проблема, безусловно, где-то в другом месте. –