我在自定义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)
}
}