【问题标题】:My iOS app complains about two-staged rotation but I'm not using it我的 iOS 应用程序抱怨两阶段旋转,但我没有使用它
【发布时间】:2013-01-21 09:25:11
【问题描述】:

我必须支持到 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 控制器)提示用户登录,并且 tabbar 控制器的控制器尚未初始化(尚未)。 “两阶段旋转”错误仅在此时显示,并且旋转不起作用。

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

  • 主窗口的rootViewController为tabbar控制器
  • 标签栏控制器为空(标签中没有视图控制器,也没有标签)
  • 从标签栏控制器以模态方式呈现视图控制器

【问题讨论】:

标签: ios cocoa-touch uiviewcontroller


【解决方案1】:

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

在 UITabBarController 的 viewControllers 属性初始化之前,显示的模式视图似乎不会旋转。由于相关的模式视图实际上是用于登录的,因此在用户登录之前我不想在其后面显示任何内容,因为标签栏控制器打算持有的视图取决于用户登录的事实。 所以现在就在呈现模态视图之前,我用一个空的 UIViewController 初始化标签栏控制器,并在模态视图被关闭(即用户登录)时将其删除。

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

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

【讨论】:

    【解决方案2】:

    关于这个错误的帖子不多,所以我会承认我自己的缺点,以便下一个人如此专注于他们可能会错过森林的树木。我发现了一个丢失的

    [super viewWillAppear:animated];

    在我的潜艇内部调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多