【问题标题】:How to let UISplitViewController on Storyboard show master view first?如何让 Storyboard 上的 UISplitViewController 先显示主视图?
【发布时间】:2021-01-04 20:38:52
【问题描述】:

我有一个带有故事板的简单应用程序,其中只有一个从 UI 对象列表中新拖放的拆分视图控制器。

当我在 iPhone 模拟器上启动应用程序时,会首先出现详细视图。

如何确保在应用启动时显示主视图?有没有办法在故事板上安排它?

【问题讨论】:

    标签: ios swift uisplitviewcontroller master-detail


    【解决方案1】:

    为了让主视图在 iPhone 上默认折叠,重写一些委托方法:

    class SplitViewController : UISplitViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
            self.delegate = self
        }
    }
    
    extension SplitViewController : UISplitViewControllerDelegate {
    
        // The default for this is .secondary!!
        @available(iOS 14.0, *)
        public func splitViewController(_ svc: UISplitViewController, 
            topColumnForCollapsingToProposedTopColumn 
            proposedTopColumn: UISplitViewController.Column) -> UISplitViewController.Column {
            return .primary
        }
    
        // default is false!
        public func splitViewController(_ splitViewController: UISplitViewController,
                                 collapseSecondary secondaryViewController:UIViewController,
                                 onto primaryViewController:UIViewController) -> Bool {
            return true
        }
    }
    

    以前您会使用preferredDisplayMode = .primaryOverlay,但现在已弃用。该代码适用于 iOS 14,并且还向后兼容早期的 iO​​S 版本。

    【讨论】:

    • 是的,第二种委托方法适用于
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多