无法在 SplitView 中覆盖 "preferredDisplayMode"

Cannot override "preferredDisplayMode" in SplitView

我有一个包含多个 UISplitViewController 的应用,每个 UISplitViewController 都有自己的 MasterView 和 DetailView。然而,我注意到,当我直接进入其中一个 SplitView 时,我会看到 DetailView,并且必须先导航回 MasterView。我想改变它,发现这适用于 preferredDisplayMode,但设置它会导致问题。

我已经为所有三个 SplitView 创建了 UISplitViewController 的子类,并尝试像这样覆盖 preferredDisplayMode

import UIKit

internal class SplitViewController : UISplitViewController {

    @IBAction internal func unwindToSplitView(segue: UIStoryboardSegue)

    override let preferredDisplayMode = UISplitViewControllerDisplayMode.PrimaryOverlay
}

但是,我收到以下错误:

Cannot override with a stored property 'preferredDisplayMode'

我做错了什么?谢谢。

您应该改写 func viewDidLoad() 并将 preferredDisplayMode 设置为您想要的值。像这样:

override func viewDidLoad() {
    super.viewDidLoad()

    preferredDisplayMode = .PrimaryOverlay // Or UISplitViewControllerDisplayMode.PrimaryOverlay if you prefer (both are equivalent)
}