Как создать пользовательский переход с данными IBInspectable

#ios #swift #xib

#iOS #swift #xib

Вопрос:

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

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

Это невозможно использовать 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)
    }
}