ios - 隐藏嵌套 UISplitViewControlles 细节的主控

标签 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 上我总是能看到一个主视图 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/

相关文章:

ios - 相对内存引用问题

ios - 自定义顶部导航栏

ios - 如何修复 cocoapods 中丢失的 Assets

ios - 如何在ios中播放.opus音频文件

ios - 如何在 XCode 7 中的 UITests 持续时间后执行 .tap()?

ios - Swift:使用 FontAwesome 图标作为 UITabBarItem 图像

swift - 如何在 Swift 中创建与泛型共存的单一类

iphone - 如何创建全局导航堆栈?

ios - 从当前 View Controller 打开一个新的 ViewController

ios - swift 将搜索栏添加到导航栏