У меня есть настраиваемая анимация перехода, которая возникает, когда новый контроллер представления помещается в стек. Однако при открытии контроллера представления, который был представлен с указанным настраиваемым переходом, происходит анимация контроллера навигации по умолчанию (то есть текущий контроллер представления анимируется вправо, в то время как родительский контроллер представления переводится на экран с левого края).
Итак, у меня такой вопрос: есть ли способ написать пользовательскую анимацию всплывающего перехода, которая происходит при извлечении контроллера представления из стека?
Правка (решение):
В итоге я определил собственный переход, аналогичный выбранному ответу. В раскадровке я перетащил настраиваемый переход от контроллера дочернего представления обратно к его родительскому, дал ему идентификатор и недавно записанный обратный переход в качестве его класса. Да, я понимаю, что это практически идентично модальному переходу. Требования клиента вызвали это безумие, поэтому, прежде чем кто-либо будет комментировать, поймите, что я знаю, что в обычных обстоятельствах этого делать не следует.
- (void)perform {
UIViewController *src = (UIViewController *)self.sourceViewController;
UIViewController *dest = (UIViewController *)self.destinationViewController;
[UIView animateWithDuration:0.3 animations:^{
CGRect f = src.view.frame;
f.origin.y = f.size.height;
src.view.frame = f;
} completion:^(BOOL finished){
src.view.alpha = 0;
[src.navigationController popViewControllerAnimated:NO];
}];
}