У меня есть пользовательский UIViewController, который отображается модально. Я называю это mainMenu
.увольнениеПросмотрКонтроллерАнализ: завершение: происходит мгновенно, если я не блокирую его
У этого есть своя маленькая маленькая переходная анимация, которую он делает, чтобы ее взгляды сдвигались с экрана. Когда я хочу отклонить его, я хочу вызвать пользовательскую анимацию, а затем фактически отклонить ее, как только это будет сделано. Похоже, что это должно работать:
- (void) dismissCustomViewController {
[mainMenu slideMenuPanelsAway];
[self dismissViewControllerAnimated:YES completion:nil];
}
Однако это делает контроллер представления исчезает мгновенно, прежде чем я получаю, чтобы увидеть пользовательскую slidey вещи.
Какой правильный способ заставить контроллер просмотра подождать, пока меню не исчезнет до исчезновения?
Я пробовал кучу вещей. Я нашел только один способ заставить его работать:
- (void) dismissCustomViewController {
[mainMenu slideMenuPanelsAway];
[self performSelector:@selector(dismissController) withObject:nil
afterDelay: 2.0f];
}
(. Я написал специальный метод, называемый dismissController
просто сделать селектор проще в использовании, в основном только вызывает [self dismissViewControllerAnimated:YES completion:nil];
)
Это только кажется ужасно kludgey использовать ручную настройку задержки вместо фактического базирования на завершении анимации. Там должен быть лучший способ, не так ли?
Где ваш код анимации? Если вы хотите что-то сделать по завершении анимации, вам придется ее там положить. –
Я думаю, что это правда в некоторых случаях, но это не кажется правдой в этом. На самом деле, если я положил увольнение в конце метода, который проводит анимацию, я получаю ту же проблему: увольнение происходит мгновенно, и анимация никогда не видна. Я попробовал это как одну из «кучу вещей». –