UISplitViewController 在第一次交互时制作灰框

UISplitViewController makes gray frame on first interaction

我的问题在这个 gif 中展示:

正如您在第一帧中看到的那样,我在第一次互动时得到了一个灰色框。背景视图是红色的,只是为了检查它是否已加载。

我的故事板是这样设置的:

我在代码中所做的唯一修改是在 SplitViewController class 中:

class SplitViewController: UISplitViewController, UISplitViewControllerDelegate {
var collapseDetailViewController = true

override func viewDidLoad() {
    super.viewDidLoad()

    self.delegate = self
    self.preferredDisplayMode = .PrimaryOverlay

}

func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool{
    return collapseDetailViewController
}

}

这在我的主表视图中

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    (splitViewController as! SplitViewController).collapseDetailViewController = false
}

这是因为我希望在用户启动我的应用程序时显示边栏。以前有没有人遇到过这个奇怪的错误,有人知道如何解决吗?

我尝试复制,但加载时没有出现灰色框。相反,它按照您的预期工作——侧边栏在应用程序启动时加载。

我发现了一些类似的问题,可能会为您提供一些见解: