【问题标题】:iPad UISplitViewController: Expand master instead of detail full screen?iPad UISplitViewController:展开主而不是详细全屏?
【发布时间】:2015-04-12 07:32:59
【问题描述】:

我正在开发一个 iOS8 iPad 应用程序,它使用 UISplitViewController 作为它的根视图控制器,类似于主从模板。

我的应用要求我始终以纵向和横向并排显示主视图和详细视图。我已经设置好了,除了一个例外,一切都运行良好。我需要能够全屏展开主视图,从而隐藏详细视图。我很清楚相反的情况很容易实现(将细节扩展到全屏隐藏大师)。我本质上是在寻找相同的功能,但相反。

这是为详细视图提供扩展/收缩功能的代码:

self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
self.navigationItem.leftItemsSupplementBackButton = YES;

是否可以在 MASTER 视图控制器上实现这种效果?我需要这种效果,因为我的 MASTER 视图控制器是我的主要视图控制器,它以表格格式显示大量信息,而我的详细视图控制器不需要太多屏幕空间。

我试图简单地将preferredPrimaryColumnWidthFraction = 1 设置为简单地覆盖详细视图,但这似乎更像是一种黑客行为,并且不提供扩展详细视图的默认动画。

不,我不能将我的表格设置为详细信息(并显示在右侧)。

不,我不能将我的详细视图设置为主视图(并显示在左侧)。

不,我不想使用开源库来实现这一点(如果可能的话)

【问题讨论】:

    标签: ios ipad uiviewcontroller uisplitviewcontroller master-detail


    【解决方案1】:

    这似乎不是默认转换。

    你可以尝试从"Collapsing and Expanding the Split View Interface"的推荐入手:

    当过渡到折叠界面时,拆分视图控制器与其委托一起管理过渡。在折叠过渡结束时,拆分视图控制器通常只显示来自其主视图控制器的内容。您可以通过在拆分视图控制器委托中实现 primaryViewControllerForCollapsingSplitViewController: 方法来更改此行为。您可以使用该方法来指定辅助视图控制器或完全不同的视图控制器 - 可能更适合在水平紧凑环境中显示。如果您想对视图控制器和视图层次结构进行任何额外的调整,您还可以在您的委托中实现 splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: 方法。

    这样,您可以折叠完整显示主视图控制器,而不是通过钩入primaryViewControllerForCollapsingSplitViewController:

    这可能看起来很奇怪,因此您最好以模态方式向主视图控制器显示自定义大小调整动画。在最坏的情况下,您可以在现有的顶部添加另一个UIWindow 以分离主视图控制器。在最好的情况下,您可以修改现有的视图控制器层次结构并从那里分离主控。不过,我可以想象这会给改变方向带来很多麻烦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2015-05-22
      • 2013-08-15
      • 1970-01-01
      相关资源
      最近更新 更多