如何使用 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:UIModalTransitionStyleFlipHorizo​​ntal];再次抱歉。【参考方案2】:

好的,这是正确的版本


navigationController = [[UINavigationController alloc] initWithRootViewController:bestbuyProducts];
[bestbuyProducts setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:navigationController animated:YES];

【讨论】:

以上是关于如何使用 Flip Transition 从 UIView 转到带有 NavigationController 的 TableViewController?的主要内容,如果未能解决你的问题,请参考以下文章

从模态转换返回后如何重置我的 UI ScrollView 位置?

如何同时应用 jQuery UI 效果(滑动+翻转)?

Jquery UI Draggable 添加了 CSS 的 Scale Transition 问题

基于 React 实现一个 Transition 过渡动画组件

vue3学习随便记12

vue3学习随便记12