Apple 鼓励我们将 UISplitViewController
用于通用应用程序,但无论何时尝试,我都会遇到困难。
我已经基于 UINavigationController
创建了我的应用程序,因为到目前为止它只是 iPhone,但现在切换到 Universal,我们希望在一个屏幕上有一个 Master-Details,所以它很自然 让我伸手去拿 UISplitViewController
。我从简单的 Master-Detail App Template 开始,我只是想检查它是否能针对不同的设备和屏幕尺寸正确调整大小。
模板很清晰,一切都很顺利,但正如我所提到的 - 我希望这个 Master-Detail 目前只在一个屏幕上可见(将来可能更多),所以......我添加了新的 View Controller到 Storyboard ,现在它看起来像:
在 iPhone 上一切都很好,但在 iPad 上我总是能看到一个主视图 Controller 。我想要实现的是,一旦我们深入 Details View Controller 层次结构,就隐藏它。 这真的可能吗?
因为它只针对一个 View ,所以我也在考虑为 iPad 创建单独的 Storyboard,并将这个屏幕表示为 UIViewController
和两个 UIContainerView
,但我不确定为此维护 2 个 Storyboard 是否值得开销......
最佳答案
在启动时,您是否将 preferredDisplayMode 设置为 .primaryHidden?例如,如果您对 Split View Controller 的引用是 splitviewctlr,请在启动时尝试这样做:
splitviewctlr.preferredDisplayMode = .primaryHidden
这应该在 iPad 上隐藏主要内容。
您还应该为 Split View Controller 分配一个委托(delegate),并在委托(delegate)中实现 targetDisplayModeForAction(in:) 方法以控制当用户单击后退按钮时显示哪个 Controller 。
Split View Controller 的另一个有用属性是 isCollapsed,这是一个 bool 值,用于测试界面是否折叠到细节 Controller 。
关于ios - 隐藏嵌套 UISplitViewControlles 细节的主控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390610/