Я использовал 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)
}
}