У меня есть пользовательская анимация segue, которая возникает при нажатии нового контроллера представления в стек. Однако при появлении контроллера вида, который был представлен указанным пользовательским сегментом, происходит анимация контроллера навигации по умолчанию (т.е. Текущий контроллер просмотра анимируется справа, а родительский контроллер представления переводит экран на левый край).
Итак, мой вопрос заключается в следующем: есть ли способ написать пользовательскую анимацию pop segue, которая возникает при появлении контроллера вида со стека?
Изменить (решение):
В итоге я определил пользовательский сегмент, подобный выбранному ответу. В Storyboard я перетащил пользовательский segue из контроллера дочернего представления обратно в его родительский элемент, дал ему идентификатор и вновь записанный обратный сегмент в качестве своего класса. Да, я понимаю, что он практически идентичен модальному переходу. Требования клиентов требовали этого безумия, поэтому, прежде чем комментировать, поймите, что я знаю, что не нужно делать это при нормальных обстоятельствах.
- (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];
}];
}