首页 > 解决方案 > 如何使用 IBInspectable 数据进行自定义 segue

问题描述

IBInspectable在我的 custom中使用过UIViewController,它可以工作,我可以修改界面生成器中的值。

但是,当我IBInspectable在我的 custom中使用时UIStoryboardSegue,它不起作用,我在 interface builder 中看不到变量。

是不可能IBInspectable在 a中使用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)
    }
}

标签: iosswiftxib

解决方案


推荐阅读