2016-08-30 13 views
2

Довольно простая ситуация. У меня есть пользовательский UIViewController для заполнения формы. Когда пользователь нажимает кнопку «Отмена», я хочу, чтобы появилось предупреждение; «вы уверены, что хотите выйти из формы? Вы правы не будут сохранены». Если они попадут в норму, VC сделает анимацию, а затем закроется.iOS UIAlertController прерывая анимацию

У меня есть анимация, размещенная в закрытии обработчика UIAlertAction. Тем не менее, анимация происходит каждый раз каждый раз, я предполагаю, что это происходит потому, что UIAlertController анимирует, когда он отклоняется (после нажатия кнопки), а затем прерывает анимацию VC.

Любые идеи? В основном кажется, что обработчик вызывается сразу после нажатия кнопки; как я могу вызвать обработчик ПОСЛЕ завершения выполнения UIAlertController.

Edit: Вот некоторые примеры кода, чтобы проиллюстрировать этот вопрос:

let refreshAlert = UIAlertController(title: "Delete draft?", message: "Are you sure you want to discard this draft? It will not be saved.", preferredStyle: UIAlertControllerStyle.Alert) 

refreshAlert.addAction(UIAlertAction(title: "Delete", style: .Destructive, handler: { (action: UIAlertAction!) in 
    self.animationInPresentionVC() // This animation occurs instantly, it seems to be interrupted by the dismissing alert controller 
})) 

ответ

2

может быть, вы можете добавить некоторую задержку, чтобы выполнить свой animationInPresentionVC():

refreshAlert.addAction(UIAlertAction(title: "Delete", style: .Destructive, handler: { (action: UIAlertAction!) in 
    self.performSelector(#selector(**your animationInPresentionVC**), , withObject: nil, afterDelay:0.3) 
})) 
+0

Да, вот что я в конечном итоге делает , отлично работал ... чувствовал себя как хак, хотя :(Спасибо! – Josh