Увольнение UIAlertController

Я реализовал синглтон навигационного посредника в своем приложении. Медиатор хранит ссылку на первичный контроллер представления для запуска переходов контроллера представления. Таким образом, чтобы представить контроллер представления, потребитель должен вызвать для этого навигационный посредник. То же самое с отклонением, чтобы он мог сбросить основной контроллер представления.

Проблема, с которой я сталкиваюсь, заключается в представлении UIAlertController. Я не могу отклонить этот контроллер с помощью моего посредника навигации, потому что он автоматически отключается при нажатии кнопки, поэтому теряется возможность сбрасывать основной контроллер представления при его отклонении.

Единственное решение, которое я придумал, — это создать расширение в UIAlertController для переопределения viewWillDisappear, которое сбрасывает основной контроллер представления, как показано ниже. Есть ли способ отменить поведение увольнения по умолчанию?

extension UIAlertController {

    public override func viewWillDisappear(animated: Bool) {
        super.viewWillDisappear(animated)
        NavigationMediator.resetPrimaryViewController(self.presentingViewController)
    }

}

person Fergal Rooney    schedule 22.01.2015    source источник


Ответы (1)


Нет, но вы можете ответить на событие до его завершения. UIALertViewDelegate. alertView: willDismissWithButtonIndex:

В противном случае создайте свой собственный AlertView.

person Helge Becker    schedule 22.01.2015
comment
UIAlertView устарел в iOS8. Рекомендуется поддерживать UIAlertController. Спасибо хоть. - person Fergal Rooney; 22.01.2015
comment
Устаревший не означает, что он неправильный. Это просто предупреждение. - person Helge Becker; 20.08.2015