LaunchScreen.storyboard中的UISplitViewController AllVisible

时间:2016-07-25 10:06:11

标签: ios swift uisplitviewcontroller

在我的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但这仅适用于主故事板(其他属性也适用于启动画面故事板,例如标签栏色调)。

0 个答案:

没有答案