Я хотел бы выполнить анимацию, когда пользователь нажимает кнопку «Назад», чтобы вернуться к моему контроллеру Root View. Анимация просто выделит изменения, которые пользователь внес в контроллер подробного представления.Подождите с выполнением viewWillDisappear, пока пользовательская анимация не завершится?
Я пробовал это. Сама анимация работает (и не очень важна для моего вопроса, просто оставила ее, чтобы проиллюстрировать, что я делаю.) Проблема в том, что segueing происходит слишком быстро, и вы не можете видеть анимацию.
Как я могу wait
с выполнением viewWillDisappear до завершения анимации?
override func viewWillDisappear(animated: Bool) {
// ...
// Animate if text changes. reminderAfterRulesRun is a custom data structure. reminderNameTextInput is my outlet to my label
if reminderNameTextInput.text != reminderAfterRulesRun.title {
let originalreminderNameTextInputColor = self.reminderNameTextInput.textColor
// Animate the removing of "All" and replacing it with the most commonly used list.
UIView.animateWithDuration(0.3, delay: 0, options: .Autoreverse, animations: {
// Fade out
self.reminderNameTextInput.textColor = UIColor.redColor()
self.reminderNameTextInput.text = reminderAfterRulesRun.title
self.reminderNameTextInput.alpha = 0.0
}, completion: {
(finished: Bool) -> Void in
// Once the label is completely invisible, set the text and fade it back in
UIView.animateWithDuration(0.3, delay: 0, options: .Autoreverse, animations: {
// self.reminderNameTextInput.selectedSegmentIndex = self.toSegmentedControlValue(reminderAfterRulesRun.reminderNameTextInput)!
self.reminderNameTextInput.text = reminderAfterRulesRun.title
self.reminderNameTextInput.textColor = originalreminderNameTextInputColor
self.reminderNameTextInput.alpha = 1.0
}, completion: nil)
})
}
}
Я не думаю, что viewWillDisappear является правильным местом, чтобы сделать это. Я думаю, вам стоит подумать о создании еще одной функции для анимации и перейдите, когда захотите. (После окончания анимации) –
@William GP Но я хотел бы, чтобы анимация произошла, когда пользователь перешел к контроллеру корневого представления. Итак, как мне это сделать? – Daniel
Где сейчас находится ваш segue? Как это срабатывает? –