Swift 拆分视图控制器偶尔在iOS 13上显示iPhone上的详细视图

Swift 拆分视图控制器偶尔在iOS 13上显示iPhone上的详细视图,swift,ios13,Swift,Ios13,我们有一个带有拆分视图控制器的通用应用程序,这些控制器嵌入在不同的选项卡中。我们观察到,在iPhone的iOS 13上,在切换选项卡时,偶尔会显示详细视图而不是主视图。我们无法单独找出模式,这只是随机发生的,但经常发生 我已经提到和 我们正在为SplitViewController实现委托。此委托也会被调用 class AppSplitViewController: UISplitViewController { override func viewDidLoad() {

我们有一个带有拆分视图控制器的通用应用程序,这些控制器嵌入在不同的选项卡中。我们观察到,在iPhone的iOS 13上,在切换选项卡时,偶尔会显示详细视图而不是主视图。我们无法单独找出模式,这只是随机发生的,但经常发生

我已经提到和 我们正在为SplitViewController实现委托。此委托也会被调用


class AppSplitViewController: UISplitViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        self.delegate = self
        self.preferredDisplayMode = .allVisible
    }

    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */

}

// MARK: - UISplitViewControllerDelegate Methods
extension AppSplitViewController: UISplitViewControllerDelegate {
    func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
        return true
    }
}
我不确定其他人是否也在iOS 13上观察到了这一点,但我不确定为什么iOS会偶尔显示详细视图,即使我们有适当的委托实现。请注意,我们无法在iOS 12上重现这一点。这里是视图堆栈

awakeFromNib
中再次设置
UISplitViewController
委托
。似乎存在一些操作顺序问题,从iOS 13到至少13.3。我遇到了完全相同的问题,并作为的结果实现了此技巧,这似乎是有效的