#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)
}
}