我可以使用UINavigationController作为UISplitViewController的详细视图吗?

B S*_*ard 7 cocoa-touch ipad

我遇到了一个iPad应用程序的问题,我想在UISplitView中的两个视图中都有UINavigationControllers.我在这里看了其他类似的问题,但大多数链接到在线教程并没有完全解决问题.这是一个2分钟的演练来重新创建我遇到的问题:

  1. 从基于拆分视图的应用程序模板开始,在XCode中创建一个新项目.
  2. 添加以下NSLog语句作为DetailViewController的willHideViewController方法中的第一行:

    NSLog(@"toolbar:%@",工具栏);

如果您现在运行该应用程序,日志将显示DetailViewController的工具栏是否还活着.现在...

  1. 打开MainWindow.xib并展开SplitViewController.
  2. 从DetailViewController顶部的库中拖动导航控制器.
  3. 展开新的Navigation Controller并将UIViewController的类更改为DetailViewController.
  4. 按住Ctrl键并从SplitViewController拖动到DetailViewController并将其指定为委托.
  5. 保存MainWindow.xib并再次运行该应用程序.

此时,详细视图具有导航栏和空工具栏.如果查看日志,则应发现工具栏为空.为什么是这样?我在Interface Builder中错过了某种连接吗?导航栏出于某种原因是问题吗?

http://www.cimgf.com/2010/05/24/fixing-the-uisplitviewcontroller-template/上的教程不同,我想保留导航栏和工具栏(最好是工具栏在顶部在纵向中并且在横向时不可见),因此当iPad处于纵向时,我仍然具有功能性"后退"按钮.

有没有人有解决这个问题的建议?具有这种设置的示例项目将是理想的.

pmd*_*mdj 0

我发现内置的 UISplitViewController 在尝试与大多数其他内置视图控制器子类组合时表现得很糟糕。Matt Gemmell 的MGSplitViewController更加灵活,并且对我来说工作得很好,尽管存在奇怪的故障(尽管这些问题至少可以在提供源代码时修复)。