在 UITabController 中的选项卡之间切换时使用“pushViewController”动画
Posted
技术标签:
【中文标题】在 UITabController 中的选项卡之间切换时使用“pushViewController”动画【英文标题】:Using 'pushViewController' animation when switching between tabs in UITabController 【发布时间】:2011-04-19 14:49:26 【问题描述】:我在尝试使 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 推入导航控制器?
【问题讨论】:
【参考方案1】:看看这个链接:http://haveacafe.wordpress.com/2009/04/06/animated-transition-between-tabbars-view-on-iphone/
这个想法是,您需要使用标签栏控制器的委托方法并使用特定的动画类 CATransition(因为您正在视图之间“转换”)。查看CATransition documentation 以了解动画的类型/子类型。您可能需要一种带有 left 或 right 子类型的 push。
【讨论】:
尝试了他们给出的示例,但没有成功。也许它与较旧的 SDK 版本有关。以上是关于在 UITabController 中的选项卡之间切换时使用“pushViewController”动画的主要内容,如果未能解决你的问题,请参考以下文章
使用 Storyboard 和 Monotouch 手动将更多选项卡添加到 UITabController
(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换