在我的iPad应用中,第一个屏幕为UISplitViewController
preferredDisplayMode
属性设置为.AllVisible
中的viewDidLoad()
。
是否有办法为启动画面故事板设置相同的属性?
感谢。
修改
我找到了在启动画面(in this answer)中设置User Defined Runtime Attributes
的方法。
所以,我使用自定义属性进行了UISplitViewController
扩展:
extension UISplitViewController{
private struct CustomProperties{
static var preferredDisplayModeFromString: String = "Automatic"
}
var preferredDisplayModeFromString:String {
get {
return objc_getAssociatedObject(self, &CustomProperties.preferredDisplayModeFromString) as! String
}
set {
objc_setAssociatedObject(self, &CustomProperties.preferredDisplayModeFromString, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
switch newValue {
case "AllVisible":
self.preferredDisplayMode = .AllVisible
case "PrimaryHidden":
self.preferredDisplayMode = .PrimaryHidden
case "PrimaryOverlay":
self.preferredDisplayMode = .PrimaryOverlay
default:
self.preferredDisplayMode = .Automatic
}
}
}
}
现在我可以从IB设置preferredDisplayModeFromString
但这仅适用于主故事板(其他属性也适用于启动画面故事板,例如标签栏色调)。