iPhone - обнаружить конец анимации
-
02-10-2019 - |
Вопрос
Как я могу обнаружить конец анимации модального представления (когда я делаю увольнение)? (Я говорю о MFMailComueViewController, который не создан сам ...)
Спасибо
Решение
Ваш контроллер модального просмотра имеет -viewDidDisappear:
Способ, который автоматически вызывается всякий раз, когда вид удаляется с экрана. Вы можете переопределить этот метод в контроллере модального представления, чтобы делать все, что вам нравится.
Кроме того, вы можете рассмотреть вопрос о реализации -viewDidAppear:
Способ в контроллере просмотра, вид которого выявляется исчезновением вашего модального представления.
Другие советы
Вы можете подкласс MFMailComEviewController и перегружать его -viewDidDisappear:
.
@interface MyCtrler : MFMailComposeViewController
@end
@implementation MyCtrler
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
// do anything you like
}
@end
Мне нужно было что-то сделать после увольнения модального взгляда, и только тогда, когда это уверенно, что модальный вид действительно ушел (был полностью Dealoc-Ed). Таким образом, ViewDidDisAppear и его друзья на модальном виду были слишком рано для меня.
Самый проще всего я нашел, чтобы просто отложить свой код с Nstimer. Когда модальный вид вызовов его делегата, и делегат вызывает удаление модального представления, он также вступает в очередь поднятия кода, когда модальный вид отсутствует. Время было что-то вроде 300 мс или 400 мс. (Есть ли способ получить фактическое время от где-то?)
Обычно, чтобы быть уведомленным, когда анимация завершится, вы устанавливаете делегат, отправив setanimationdelegate: к классу UIView.
Когда VC отклоняется с использованием [someVC dismissModalViewControllerAnimated:YES]
Вы не можете установить делегат анимации, но если вы отправите нет вместо этого и сделаете свою собственную анимацию VC View You могу Установите делегат и быть уведомленным, когда анимация завершена.