我在这里遇到了同样的问题,因为我覆盖了该traiCollection
属性(Apple不建议这样做,但我没有找到其他解决方案),并且我返回的新traitCollection具有许多未指定的特征(如错误消息所述)。
所以现在我返回一个新traitCollection
对象,但是我通过添加来初始化它super.traitCollection
。因此,在我的视图控制器中,我有类似以下内容:
public override var traitCollection: UITraitCollection { var newTraitCollection: [UITraitCollection] = [super.traitCollection] // I need to force size class on iPad if UIDevice.current.userInterfaceIdiom == .pad { newTraitCollection += [UITraitCollection(verticalSizeClass: .regular), UITraitCollection(horizontalSizeClass: .compact)] } return UITraitCollection(traitsFrom: newTraitCollection) }