2012-06-14 22 views
13

我正在构建一个ipad应用程序。当应用程序启动时,我将它显示在横向右键模式下。但是,一旦应用程序启动后,我得到这个消息两阶段旋转动画已弃用。这个应用程序应该使用更流畅的单级动画

Two-stage rotation animation is deprecated. This application should use the smoother single-stage animation 

我用我所有的类此方法

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

我也把我的支持的接口方向(新iPad)景观就在我的plist文件。 如何解决此警告消息?

+0

如果您尝试使用模态UITabBarController(更新,是的,您可以),然后看解决方案[这里](http://stackoverflow.com/questions/6271978/presenting-uitabbarcontroller-modally-autorotate-problem)。官方解释为什么这件事[这里](http://stackoverflow.com/questions/6636683/how-to-eliminate-two-stage-rotation-warning)。 – Alexander

+0

@亚历山大我没有模态地显示标签栏。 – southpark

+0

你是“登录屏幕”的NavigationController吗?所有的控制器,必须是“rootViewController”,不应该被用作“模式”。 – Alexander

回答

15

我刚刚意识到 - 在阅读this答案后 - 我简单地使用Tab Bar Controller错误:标签栏应该只用作根控制器,但是我在它之前插入了一个导航控制器。

+0

看来标签栏控制器可以在iOS8的导航控制器中使用,但在iOS7中会出现错误。 – supNate

1

的问题是,您的应用使用这些方法,这是在安装iOS 5.0弃用之一:

didAnimateFirstHalfOfRotationToInterfaceOrientation: 
willAnimateFirstHalfOfRotationToInterfaceOrientation:duration: 
willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: 

您需要修改您的视图控制器来覆盖willAnimateRotationToInterfaceOrientation:duration:代替,并覆盖所有的“HalfOfRotation”方法。

+0

我在哪里放置此方法。 – southpark

+0

我的应用程序的确切功能是 - 我有一个tabbar应用程序。我在我的appdelegate中启动一个tabbarcontroller,并将所有的类添加到tabbarcontroller的数组中。然后,我在标签栏的前面添加一个登录屏幕,登录后我显示标签栏。我的应用程序以横向模式打开,但我收到此警告。也因为这个我想我的键盘尺寸不正确。在横向模式下显示键盘宽度和高度时,它给了我宽度= 352和高度= 1024在iPad 3中。我似乎系统不知道它目前在横向模式。谢谢 – southpark

+0

您是否搜索过所有已弃用方法的源代码? –

0

ckeck您的数组声明标签栏 ..possible错误没有做: 我声明数组oblects分配

tabBarController.viewControllers = tabControlArry; 
[tabControlArry addObject:navCOntroller]; 
[tabControlArry addObject:navController1]; 

正确的方法后:

[tabControlArry addObject:navCOntroller]; 
[tabControlArry addObject:navController1]; 
tabBarController.viewControllers = tabControlArry; 
7

您还可以收到此错误信息如果您已经在故事板中以root身份运行带有空白标签栏控制器的应用程序。我刚刚开始使用应用程序,而我的UITabBarController目前还没有视图控制器,但正在呈现登录模式。

+0

我正是这样。谢谢。 – Skrew

0

此错误消息与TabBarController用法有关。如果您没有将您的tabBarController作为您的应用的“根控制器”,那么您可以预料到此错误。所以让你的TabBarController作为根控制器&这个错误不会再纠缠你。

相关问题