3

这是我的问题,我希望有人能帮助我。

我的 iPad 应用程序是这样制作的:我在 appDelegate 的窗口中添加了几个 viewControllers 作为 tabBarController 中的选项卡。在这些视图控制器中的每一个中,我都有两个导航控制器和一个视图控制器。

  • 应用委托
    • 标签栏控制器
      • 视图控制器
        • 导航控制器
          • 视图控制器
        • 导航控制器
          • 视图控制器
      • 视图控制器
        • 导航控制器
          • 视图控制器
        • 导航控制器
          • 视图控制器

在模拟器中一切正常,但是当我在设备上运行它时,我收到了这个警告:

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

只有当我在横向模式的设备上运行它时才会发生。tabBarController 显示的默认视图的第一个 navigationController 占据了所有的屏幕宽度(这里不重要,但它是为了解释这个警告让我的布局变得疯狂)。在纵向中,控制台中没有任何内容。

我读了很多关于这条消息的东西,但我找不到任何解决方案让它消失。我确定这是一个关于 shouldAutoRotate 或类似的故事。我还注意到,如果我删除 tabBarController 并简单地将我的第一个 viewController 添加到窗口,则不会显示该消息。

很奇怪...请帮助:)

4

1 回答 1

2

我认为您应该依赖UISplitViewControlleriPad 下可用的标准。这个控制器是在设置应用程序和各种其他应用程序下使用的。

如果你对这样的工具不满意,可以看看GitHub 上 slatvick 开发的APSplitViewController插件。我希望这可以解决你的很多问题。

编辑

谷歌搜索这个问题,我发现当你创建错误的视图控制器层次结构时会出现这个警告。在这种情况下,您将在视图控制器中推送两个导航控制器,即使视图控制器并不意味着包含不同的导航控制器。可能存在与您如何发送到父视图控制器方法等相关的问题viewDidLoadviewWillLoad:您应该尝试了解您是否将所有这些调用正确地从内部导航控制器传递给父视图控制器。

于 2011-06-07T13:31:55.733 回答