Вопрос

Как я могу обнаружить конец анимации модального представления (когда я делаю увольнение)? (Я говорю о 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 могу Установите делегат и быть уведомленным, когда анимация завершена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top