0

我正在将iPhone应用程序转换为在iPad上工作。在这种情况下,用户界面是使用界面构建器创建的。根控制器的接口(在索引0处),在此由布局选项卡控制器&导航控制器的:UISplitViewController - willShowViewController未触发

  • 标签控制器
  • 导航控制器1
  • 导航控制器2
  • 导航控制器3

我一直在实施这件事。作为第一步,当我设置Tab Controller &导航控制器1时,一切正常。 willHideViewController & willShowViewController正常工作。我的界面正确地从SplitView切换到Popover。当我添加导航控制器2时,willHideViewController & willShowViewController永远不会触发&无论iPad在模拟器中的方向如何,我总能看到Popover控制器。

当我添加第二个导航控制器时,是否还有其他需要在界面构建器中关联以使界面正常工作?

回答

0

我猜你已经设置了第一个导航控制器的代表,但第二个没有。委托对象会接收像willHideViewController这样的方法。

我也不确定拥有多个导航控制器是不错的风格。视图控制器知道它已放置在导航控制器中,并且可以使用self.navigationController访问它。您应该继续将视图控制器放在同一个导航控制器上。或者我可能误解了你想用你的标签控制器做什么。

+0

我使用由Xcode 4生成的splitView模板作为将iPad支持添加到我的项目的基础。在这个splitView模板中,处理willShowViewController/willHideViewController的委托是DetailViewController。我相信这个委托是正确实现的,因为当RootController只不过是一个tabController而已经实现了一个标签的时候,所有东西都能正常工作。当我向RootController添加第二个选项卡时,当事情停止工作。当我删除额外的选项卡时,所有事情都会重新开始。 – russes

+0

顺便说一句,有3个导航控制器,每个标签栏中的标签。选择标签后,该标签的导航控制器最终会推送视图控制器以最终选择一个项目。所以,我很确定我正确地使用控制器。该实现可以像iPhone应用程序一样正常工作。我只看到问题,当我尝试使iPhone界面正常工作的splitView。 – russes

+0

另外一点信息:导致(根)splitView出现问题的选项卡是使用Stanford课程资料中提供的CortDataTableViewController类实现核心数据表的选项卡。当这个类被添加到笔尖时,事情就会失败。删除它,东西正常工作。 – russes

0

这个问题的答案很简单:当你实现你想要的一切,从纵向到横向正确切换拆分视图控制器&,你需要确保所有的界面元素实现shouldAutorotateToInterfaceOrientation肖像&景观布局。