拆分视图(UISplitViewController)是否可以在横向模式下用于IPhone 5,6,8等非超大号IPh?

时间:2018-01-02 18:30:46

标签: ios iphone uisplitviewcontroller swift4 landscape-portrait

我正在使用包含UISplitViewController的Master-Detail模板。 对于正尺寸Iphone横向模式,splitviewcontroller会自动将视图分为两部分。左侧为主视图控制器,右侧为详细视图控制器。

这个场景适用于iPhone 5,6,8,X,适用于IPhone 6 +,8 +等大小。

以下是SplitView委托方法的代码。

func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController:UIViewController, onto primaryViewController:UIViewController) -> Bool 


    guard let secondaryAsNavController = secondaryViewController as? UINavigationController else { return false }
    guard let topAsDetailController = secondaryAsNavController.topViewController as? DetailViewController else { return false }
    if topAsDetailController.selectedEvent == nil {
        // Return true to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded.
        return true
    }
    return false

1 个答案:

答案 0 :(得分:0)

根据文档,它看起来像是可能的:

  

在水平常规环境中,拆分视图控制器   尽可能并排显示其视图控制器。在一个   水平紧凑的环境,拆分视图控制器的作用更大   像导航控制器一样,显示主视图控制器   最初并将辅助视图控制器推送或弹出为   需要。您还可以要求拆分视图控制器更喜欢a   通过为 preferredDisplayMode 指定值来进行特定安排   属性。

如果第一个不起作用,请尝试将preferredDisplayMode设置为allVisibleprimaryOverlay