Как можно получить обработчик UIAlertAction
в Swift. Он устанавливается при инициализации, однако я не нашел никакого свойства, чтобы справиться с закрытием действия. Закрытие типа (UIAlertAction) -> Void
, однако я хотел бы получить содержимое закрытия, так что у меня есть закрытие, например, () -> Void
. Это возможно? Спасибо за ваши ответыПолучить обработчик UIAlertAction в Swift
2
A
ответ
2
НЕТ член/свойство, открытое классом UIAlertAction. Однако мы можем управлять этим самим путем подклассификации UIAlertAction и иметь некоторого члена, названного, например, «actionHandler», чтобы сохранить это.
0
Я создал подкласс для этого, как следует:
/// An UIAlertAction which saves the handler. Can be used for unit testing the action callback.
final class UIExecutableAlertAction: UIAlertAction {
private var handler: ((UIAlertAction) -> Swift.Void)?
static func with(title: String?, style: UIAlertActionStyle, handler: ((UIAlertAction) -> Swift.Void)? = nil) -> UIExecutableAlertAction {
let action = UIExecutableAlertAction(title: title, style: style, handler: handler)
action.handler = handler
return action
}
func execute() {
handler?(self)
}
}
который может быть использован, как это:
let myAction = UIExecutableAlertAction.with(title: "title", style: .destructive, handler: { [weak self] _ in
// Do something
})
Смежные вопросы
- 1. Обработчик UIAlertAction не работает
- 2. Issue наследовать UIAlertAction в Swift
- 3. Создание UIAlertAction в Swift
- 4. Нет инициализатор UIAlertAction (название, стиль, обработчик)
- 5. UIAlertAction обработчик конца ответа в Objective-C
- 6. Как я могу выполнить обработчик UIAlertAction?
- 7. Как получить доступ к себе из UIAlertAction в Swift?
- 8. Как удалить UIAlertAction из UIAlertController в Swift?
- 9. Как правильно использовать обработчик UIAlertAction в Objective-C
- 10. Swift: Изменить название UIAlertAction по щелчку
- 11. Swift 2.0 не позволяет мне сделать UIAlertAction
- 12. Swift: установка значения переменной внутри UIAlertAction
- 13. Значок на вкладке «Приращение» с UIAlertAction swift?
- 14. Ошибка UIAlertAction
- 15. Передача данных между контроллерами представления с помощью UIAlertAction в Swift
- 16. Обработчик UIAlertAction не вызван через UIWindows на iOS 9
- 17. Обработчик UIAlertAction немного запоздал - как я могу сделать это немедленно?
- 18. Обработчик завершения - Parse + Swift
- 19. Общий обработчик завершения в Swift
- 20. Как открыть библиотеку фотографий из UIAlertAction в swift?
- 21. Центрирование изображения в UIAlertAction в UIAlertController
- 22. Добавление prepareForSegue в UIAlertAction
- 23. Есть ли лучший способ использовать обработчик в UIAlertController (Swift)?
- 24. Как я могу получить обработчик UIAlertAction для выполнения, прежде чем UIAlertController будет уволен?
- 25. Получить выделенный индекс UIAlertAction с динамическими элементами
- 26. Правильный способ создания обработчика UIAlertAction
- 27. Получите UIAlertController от UIAlertAction?
- 28. Как открыть входной аксессуар через UIAlertAction с помощью swift?
- 29. Swift - UIAlertAction - не удалось найти имя пользователя по умолчанию?
- 30. Использование UIAlertAction для увеличения значок на панели вкладок с Swift