iOS 13 UISplitView问题

Seb*_* R. 6 iphone uisplitviewcontroller detailview swift ios13

在iOS 13 Beta 5上,我目前在iPhone上的UISplitView出现问题。

我的应用程序以我的splitview的detailsview开头,而不是以masterview开头(看图片) 详细视图

有谁知道我如何在iOS 13下解决此问题?在iOS 12上,一切正常工作

塞克斯蒂安(Thbas预先)


编辑:

抱歉,我的答案很晚,我正在短暂的假期中,没有任何互联网:/

我的班级看起来像这样:


class MyClass : UITableViewController, UISplitViewControllerDelegate, UIPickerViewDelegate {

override func viewDidLoad() {
        super.viewDidLoad()

        if (UIDevice.current.userInterfaceIdiom == .pad){
            navigationController?.navigationBar.isTranslucent = false
        }

        /*SplitView*/

        splitViewController?.preferredDisplayMode = .allVisible
        splitViewController?.delegate = self

        self.definesPresentationContext = true

}

    // SplitView
    func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
        return true
    }

}


Run Code Online (Sandbox Code Playgroud)

我认为这似乎是解决此问题的正常过程:/

小智 6

我遇到过同样的问题。

经过一番调查viewDidLoad,将其设置为可见状态似乎为时已晚。

我对进行了细分,UISplitViewController并更改了awakeFromNib方法中的设置。现在它正在按预期工作。


Chr*_*ade 5

Alxlives的回答对我有所帮助。通过使用调试器,我注意到在主视图控制器中,未调用viewDidLoad。因此,永远不会设置委托,因此永远不会调用折叠方法。

我通过在awakeFromNib()中设置委托来解决此问题:

override func awakeFromNib() {
    self.splitViewController?.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

现在splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool调用,如果返回true,则将显示母版。