Использование анимации pushViewController при переключении между вкладками в UITabController - PullRequest
2 голосов
/ 19 апреля 2011

У меня проблемы с попыткой заставить UITabBarViewController выполнять ту же анимацию, что и UINavigationController, когда он выполняет pushViewController.

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

UIViewController *currentVC = [tabBarController selectedViewController];
if (currentVC == viewController) 
    return NO;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
UIModalTransitionStyle transition = UIModalTransitionStyleFlipHorizontal;
[UIView setAnimationTransition:transition forView:tabBarController.view cache:YES];
[currentVC viewWillAppear:YES];
[viewController viewWillDisappear:YES];
[viewController viewDidDisappear:YES];
[currentVC viewDidAppear:YES];
[UIView commitAnimations];
return YES;}

Следующий код выполняет анимацию при переключении вкладок:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

UIViewController *currentVC = [tabBarController selectedViewController];
if (currentVC == viewController) 
    return NO;

[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:tabBarController.view cache:YES];
[currentVC viewWillAppear:YES];
[viewController viewWillDisappear:YES];
[viewController viewDidDisappear:YES];
[currentVC viewDidAppear:YES];
[UIView commitAnimations];

return YES;}

Как я могу изменить приведенный выше код, чтобы выполнить слайд из правильной анимации, аналогично вставке viewController в контроллер навигации?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Посмотрите по этой ссылке: http://haveacafe.wordpress.com/2009/04/06/animated-transition-between-tabbars-view-on-iphone/

Идея в том, что вам нужно использовать метод делегата контроллера панели вкладок и использовать определенный класс анимации CATransition (поскольку вы «переходите» между представлениями). Посмотрите документацию CATransition для типов / подтипов для анимации. Возможно, вам понадобится тип push с подтипом left или right.

0 голосов
/ 19 апреля 2011

Перейдите по этой ссылке: http://www.iphoneexamples.com/, чтобы изучить основные анимационные вещи.

...