我的iOS应用程序抱怨两阶段轮换,但我没有使用它

时间:2013-01-21 09:25:12

标签: ios cocoa-touch uiviewcontroller

我必须支持iOS 4.3。

我的应用在控制台输出:

Using two-stage rotation animation. To use the smoother single-stage animation, this application must remove two-stage method implementations.

据我所知,我没有使用两阶段轮换。我在视图控制器中只有这个方法:

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

为了解决这个问题,我还应该检查什么?

编辑: 更精确:我的应用程序使用UITabbarController子类。当应用程序启动时,它会检查用户是否已登录,然后启动tabbar控制器的控制器(如果是这种情况)。如果没有用户登录,则会显示模式视图(来自标签栏控制器)用户登录的提示,并且尚未初始化标签控制器的控制器。 “两阶段旋转”错误仅在该时刻显示,并且旋转不起作用。

总而言之,问题发生在那种情况下:

  • 主窗口的rootViewController是tabbar控制器
  • 标签栏控制器为空(标签中没有视图控制器且没有标签)
  • 视图控制器以tabbar控制器
  • 的形式呈现

2 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。

在初始化UITabBarController的viewControllers属性之前,似乎所呈现的模态视图不会旋转。由于有关的模态视图实际上是用于登录,因此我不希望在用户登录之前显示任何内容,因为要由tabbar控制器保存的视图取决于用户登录的事实。 所以现在就在呈现模态视图之前,我用一个空的UIViewController初始化tabbar控制器,当模态视图被解除时(即用户登录)我将其删除。

也许它似乎是一个黑客但它运作良好。即使我不明白为什么,在完全初始化之前,tabbar控制器的行为似乎并不完全不合逻辑。

如果某人有更好的解决方案或解释,请随时评论:)

答案 1 :(得分:0)

关于这个错误的帖子不多,所以我会承认自己的缺点,为了下一个人的利益,所以他们可能会关注他们可能错过森林的树木。我找不到了

[super viewWillAppear:animated];

在我的潜水艇内打电话。