Реализовать другое поведение для отклонения листа действий UIAlertController при нажатии на представление для события отмены - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь заставить работать кнопку отмены и перейти к предыдущему экрану.Я нажимаю за пределами листа действий, и событие отмены все еще происходит.

Вот мой код:

let alertController = UIAlertController(title: "searchEvent", message: nil, preferredStyle: .actionSheet)

alertController.addAction(UIAlertAction(title: "event 1", style: .default, handler: nil)

alertController.addAction(UIAlertAction(title: "event 2", style: .default, handler: nil)
alertController.addAction(UIAlertAction(title: "event 3", style: .default, handler: nil)

alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: {[weak self] (action) in
    self?.dismiss(animated: true, completion: nil)
}))

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Если вам нужно другое поведение для нажатия кнопки отмены и касания вне листа действий, прежний отменяет и закрывает VC, позже только отменяет лист действий, тогда вам нужно изменить стиль кнопки отмены на что-то отличное от отмены, а затем добавить распознаватель жестов.to self.actionSheet.view.superview? .subviews.first?

Блок распознавания жестов отклонит лист действий Блок кнопок отмены отклонит контроллер представления.

0 голосов
/ 18 октября 2018
self.present(alertController, animated: true, completion: {
        alertController.view.superview?.subviews[0].isUserInteractionEnabled = false
    })

Это отключит любое поведение при нажатии пользователем вне листа действий

...