Как сделать пользовательский переход с данными IBInspectable - PullRequest
1 голос
/ 15 марта 2019

Я использовал IBInspectable в своем пользовательском UIViewController, и он работает, я могу изменить значение в конструкторе интерфейса.

Однако, когда я использую IBInspectable в своем пользовательском UIStoryboardSegue,он не работает, я не вижу переменные в конструкторе интерфейсов.

Нельзя использовать IBInspectable в UIStoryboardSegue или я что-то не так делаю?

Здесьмой код.

class EmbedSegue: UIStoryboardSegue {
    @IBInspectable var childLevel = 0
    override func perform() {
        var container:ContainerVC?
        if childLevel == 0 {
            container = source as? ContainerVC
        } else if childLevel > 0 {
            var target:UIViewController? = source
            for _ in 0..<childLevel {
                target = target?.children.first
                if target == nil {
                    break
                }
            }
            container = target as? ContainerVC
        } else if childLevel < 0 {
            var target:UIViewController? = source
            for _ in 0 ..< -childLevel {
                target = target?.parent
                if target == nil {
                    break
                }
            }
            container = target as? ContainerVC
        }
        guard let _container = container else {
            var vcName = Utility.className(source)
            if let name = source.nibName {
                vcName = name
            }
            print("Unable to perform embed from \(vcName) with child level \(childLevel)")
            return
        }
        _container.embed(destination)
    }
}
...