隐藏嵌入式UISplitViewControlles详细信息的主人

时间:2017-11-20 11:09:23

标签: ios swift uinavigationcontroller uisplitviewcontroller

Apple鼓励我们将UISplitViewController用于通用应用,但无论何时我尝试使用它都会面临一堵砖墙。
我已经基于UINavigationController创建了我的应用程序,因为到目前为止它只是iPhone,但是现在切换到Universal我们希望在一个屏幕上有一个Master-Details,所以它是自然让我来UISplitViewController。我已经开始使用 Master-Detail App Template 进行简单操作了,我只是想检查它是否针对不同的设备和屏幕尺寸正确调整大小。
模板清晰,一切顺利,但正如我所提到的 - 我希望这个Master-Detail目前只能在一个屏幕上显示(可能在将来更多),所以...我已经将新的View Controller添加到Storyboard,现在它看起来像: enter image description here 一切都适用于iPhone,但是当涉及到iPad时,我总能看到一个主视图控制器。我想要实现的是在我们深入了解详细信息视图控制器层次结构后隐藏它。 实际可行吗?
由于它仅适用于一个视图,我还考虑为iPad创建单独的Storyboard,并将这一个屏幕表示为UIViewController,其中包含两个UIContainerView s,但我不确定是否值得为此维护2个故事板的开销......

1 个答案:

答案 0 :(得分:0)

在发布时,您是否将preferredDisplayMode设置为.primaryHidden?例如,如果您对拆分视图控制器的引用是 splitviewctlr ,请在启动时尝试此操作:

splitviewctlr.preferredDisplayMode = .primaryHidden

这应该隐藏在iPad上的主要内容。

您还应该为拆分视图控制器分配一个委托,并在委托中实现 targetDisplayModeForAction(in :) 方法,以控制用户单击后退按钮时显示的控制器。

拆分视图控制器的另一个有用属性是 isCollapsed ,这是一个布尔值,用于测试接口是否折叠到详细控制器。