【问题标题】:UISplitViewController - set always visible master controller whenUISplitViewController - 设置总是可见的主控制器时
【发布时间】:2016-01-15 00:02:18
【问题描述】:

我研究了拆分视图的示例 (like this one),效果很好。我只需要改变一种行为。当用户有纵向 iPad 时,我希望主控制器和细节控制器都可见。它应该像 FB Messenger 或 Skype 一样工作。两个控制器并排,无法隐藏主控制器。怎么可能做到这一点?感谢您的帮助

额外问题:是否可以以某种方式将 iPad 肖像的行为设置为与 iPhone 肖像相同?如果我改变主意,我希望全屏显示详细信息,然后点击左侧导航栏按钮,我将在全屏显示主视图并且不显示详细信息。我是否有可能或拆分视图决定了这一点,我对此无能为力?

【问题讨论】:

    标签: ios ipad autolayout uisplitviewcontroller size-classes


    【解决方案1】:

    UISplitViewController 有一个名为preferredDisplayMode 的属性。您可以将其设置为以下任一值:

    1. UISplitViewControllerDisplayModeAutomatic
    2. UISplitViewControllerDisplayModePrimaryHidden
    3. UISplitViewControllerDisplayModePrimaryOverlay
    4. UISplitViewControllerDisplayModeAllVisible

    您正在寻找UISplitViewControllerDisplayModeAllVisible

    [self.splitViewController setPreferredDisplayMode:UISplitViewControllerDisplayModeAllVisible];
    

    UISplitViewControllerDisplayModeAllVisible

    主要和次要视图控制器并排显示在屏幕上。

    适用于 iOS 8.0 及更高版本。

    您可以在 Apple 的文档中阅读有关显示模式 here 的更多信息。

    【讨论】:

    • 感谢您的回答。我知道这一点,但是当我使用它时,我仍然能够隐藏主(左)控制器。但我正在深入挖掘,我发现那是因为我在教程中设置:detailViewController.navigationItem.leftItemsSupplementBackButton = true detailViewController.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem() 所以在删除它之后我想要它。
    • 所以只是为了奖金问题。您知道是否可以在 iPad 纵向中设置与 iPhone 纵向相同的布局?全屏控制器?如果可以在更改布局的位置使用宽度尺寸进行操作。
    • 是的,您只需要使用显示模式即可。在 PrimaryHidden 和 PrimaryOverlay 之间切换将使您在屏幕上显示主要或次要之间来回切换。我相信当您在 iPhone 上使用 AllVisible 时,这实际上就是这种行为。 iPhone 无法同时显示两者,因此它会在幕后为您在隐藏和覆盖之间切换。
    • 不,在这方面你是不对的。它只是将主控制器设置为覆盖并设置它最初是显示还是隐藏。
    猜你喜欢
    • 2013-10-31
    • 2015-12-16
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多