Я хотел бы добавить метод к моему ViewController, который показывает сообщение с текстом в виде предупреждения с кнопками Да и Нет. Результат должен быть типа Bool (Да / Нет).
Я попробовал следующее:
func YesNoBox(msg: String) -> Bool
{
var retVal = false
let alert = UIAlertController(title: "", message: msg, preferredStyle: .alert)
let action_yes = UIAlertAction(title: "Yes", style: .default, handler:
{ _ in NSLog("The \"Yes\" alert occured."); retVal = true })
let action_no = UIAlertAction(title: "No", style: .cancel, handler:
{ _ in NSLog("The \"No\" alert occured."); retVal = false })
alert.addAction(action_yes)
alert.addAction(action_no)
self.present(alert, animated: true, completion: nil)
return retVal
}
Однако значение retVal
всегда равно false
. Если бы я был в C / C ++, я бы решил эту проблему с помощью указателя, но это Swift (и я довольно новичок в этом).
Кто-нибудь знает, как я могу заставить это работать?
РЕДАКТИРОВАТЬ: у меня проблема заключается в следующем. На ViewController у меня есть TextField. Когда я нажимаю на текстовое поле, приложение должно спросить пользователя, хотят ли они вставить текст из буфера обмена. Если да, вставьте, в противном случае выделите фокус TextField (т. Е. Пусть на нем будет мигать курсор). Я пытался сделать это с помощью textFieldShouldBeginEditing, и в этом методе я отображаю YesNoBox. Проблема в том, что TextField никогда не получает фокус после закрытия YesNoBox. И когда после вызова Box я использую функцию «становиться становящимся ответчиком»), приложение зависает. Я не знаю что делать?