如何使用 Flip Transition 从 UIView 转到带有 NavigationController 的 TableViewController?
Posted
技术标签:
【中文标题】如何使用 Flip Transition 从 UIView 转到带有 NavigationController 的 TableViewController?【英文标题】:How do I use Flip Transition to go from a UIView to a TableViewController with a NavigationController? 【发布时间】:2010-02-27 02:30:50 【问题描述】:我有两个视图:一个只有一个按钮(视图 1),另一个包含一个带有搜索栏的表格视图(屏幕 2)。当用户在视图 1 中单击该按钮时,我希望视图 1 翻转并显示屏幕 2。
视图 2 位于导航控制器内部,顶部有一个导航栏。
以下是我现在所拥有的。过渡动画有效并翻转到第二个屏幕,但视图 2 缺少来自 NavigationBar 的 SearchBar 和标题。两者都设置在视图 2 内。
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
navigationController = [[UINavigationController alloc] init];
bestbuyProducts = [[BestBuyProductsViewController alloc] initWithNibName:@"BestBuyProductsViewController" bundle:nil];
[navigationController pushViewController:bestbuyProducts animated:NO];
[navigationController.view setFrame: [self.view bounds]];
[bestbuyProducts release];
[self.view addSubview:navigationController.view];
[UIView commitAnimations];
谢谢
【问题讨论】:
你能发布你的 Screen2 代码吗? 【参考方案1】:要启动您的 UINavigationController 未正确初始化。使用 initWithRootViewController: 方法:
bestbuyProducts = [[BestBuyProductsViewController alloc] initWithNibName:@"BestBuyProductsViewController" bundle:nil];
// Initialise the navigation view with the bestbuyProducts view controller
navigationController = [[UINavigationController alloc] initWithRootViewController:bestbuyProducts ];
那就尝试用modal view transition来做一个翻转动画,上手更简单安全:
[navigationController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[bestbuyProducts release];
【讨论】:
Yannick,您的代码正确显示了我的屏幕 2,即我可以看到我的搜索栏和导航栏有标题,但没有翻转效果... 啊,是的,抱歉,我犯了一个错误,在 bestbuyProducts 上设置了 setModalTransitionStyle,如下所示:[bestbuyProducts setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];再次抱歉。【参考方案2】:好的,这是正确的版本
navigationController = [[UINavigationController alloc] initWithRootViewController:bestbuyProducts];
[bestbuyProducts setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:navigationController animated:YES];
【讨论】:
以上是关于如何使用 Flip Transition 从 UIView 转到带有 NavigationController 的 TableViewController?的主要内容,如果未能解决你的问题,请参考以下文章
从模态转换返回后如何重置我的 UI ScrollView 位置?
Jquery UI Draggable 添加了 CSS 的 Scale Transition 问题