我一直遇到addChild(myLabel)
被触发两次的问题,导致崩溃。有没有办法保护如果addChild(myLabel)
已经添加了label
,就不会触发?
我一直在寻找一个bool
,类似于myLabel.isAddedToView
的东西,但不要认为有。我也试过
guard let test = addChild(myLabel) else {print("error") return}
但这给了我错误
条件绑定的初始值设定项必须具有可选类型,而不是 Void">
如何在布尔值中跟踪它,例如
var isChildAdded = false
if !isChildAdded {
addChild(myLabel)
isChildAdded = true
}
如果你的意思是这个函数的用法addChild(_ childController: UIViewController)
那么我建议检查一下
if !controller.children.contains(controller1) {
// your actions
}
否则,如果它是addSubview(_ view: UIView)
那么
if !view1.subviews.contains(view2) {
//your actions
}