UIAlertController вызывается после действия - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь получить бинарный ответ от пользователя, UIAlertController кажется наиболее естественным выбором.Тем не менее, всплывающее окно открывается, когда вызывающее действие (IBAction, возникающее из-за длительного нажатия в подпредставлении) закрывается, а мне нужен результат раньше (в функции 'hit').Это код, который я использую.Печать только для того, чтобы показать, что конец функции достигнут до того, как появится всплывающее окно.Чего мне не хватает? ...

@IBOutlet var longPress: UILongPressGestureRecognizer!
@IBAction func longPressAction(_ sender: UILongPressGestureRecognizer) {

    if longPress.state == .ended {
        let alert = UIAlertController(title: "HIT?", message: nil, preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "YES", style: .default, handler: nil))
        alert.addAction(UIAlertAction(title: "NO", style: .default, handler: nil))
        self.present(alert, animated: true)

        let location = longPress.location(in: fieldView)
        let x = location.x
        let y = location.y
        hit(x, y)
        print("I'm here")
    }
}
...