【问题标题】:Hiding master for nested UISplitViewControlles's details隐藏嵌套 UISplitViewControlles 详细信息的主控
【发布时间】:2018-05-03 14:08:39
【问题描述】:

Apple 鼓励我们将 UISplitViewController 用于通用应用程序,但无论何时我尝试它都会遇到一堵墙。
我已经基于UINavigationController 创建了我的应用程序,因为到目前为止它只是 iPhone,但现在切换到 Universal,我们希望在一个屏幕上拥有一个 Master-Details,所以这对我来说是自然联系UISplitViewController。我从 Master-Detail App Template 开始,我只是想检查它是否针对不同的设备和屏幕尺寸正确调整大小。
模板清晰,一切顺利,但正如我所提到的 - 我希望这个主细节目前仅在一个屏幕上可见(将来可能更多),所以......我添加了新的视图控制器到情节提要,现在它看起来像: 在 iPhone 上一切正常,但在 iPad 上,我总是可以看到主视图控制器。我想要实现的是一旦我们深入到 Details View Controller 层次结构中隐藏它。 真的有可能吗?
由于它仅适用于一个视图,我还考虑为 iPad 创建单独的 Storyboard,并将这个屏幕表示为 UIViewController 和两个 UIContainerViews,但我不确定仅维护 2 个 Storyboard 是否值得开销为此...

【问题讨论】:

    标签: ios swift uinavigationcontroller uisplitviewcontroller


    【解决方案1】:

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

    splitviewctlr.preferredDisplayMode = .primaryHidden
    

    这应该在 iPad 上隐藏主要。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 2014-01-18
      • 1970-01-01
      相关资源
      最近更新 更多