Я реализовал контроллер представления контейнера (ios5), и теперь я пытаюсь реализовать пользовательские анимации/переходы для переключения контроллеров представления.
Но у меня есть проблема при реализации любой анимации, в которой используется UINavigationController, результат не такой, как ожидалось. Например, если я выполняю переворот левой анимации при отображении контроллера с панелью навигации, положение панели навигации остается на 44 пикселя ниже исходного положения, и после выполнения анимации панель навигации плавно перемещается в исходное положение, которое на самом деле уродливый...
Это происходит с каждой анимацией, которую я выполняю, поэтому я думаю, что это должно быть связано только с навигационным контроллером.
Это код, который я использую для флип-перехода
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionNone
animations:^{
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:NO];
[UIView commitAnimations];
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];
Я также пробовал следующее
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];