我一直遇到一个问题,其中addChild(myLabel)
被两次触发,导致崩溃。如果已经添加了addChild(myLabel)
,有没有办法保证不会触发label
?
我一直在寻找bool
之类的myLabel.isAddedToView
,但不认为有一个。我也尝试过
guard let test = addChild(myLabel) else {print("error") return}
但这给了我错误
用于条件绑定的初始化程序必须具有Optional类型,而不是Void'
答案 0 :(得分:2)
如何用布尔值来跟踪它,例如
var isChildAdded = false
if !isChildAdded {
addChild(myLabel)
isChildAdded = true
}
答案 1 :(得分:0)
如果您是要使用此功能addChild(_ childController: UIViewController)
那我建议检查一下
if !controller.children.contains(controller1) {
// your actions
}
否则,如果是addSubview(_ view: UIView)
,则
if !view1.subviews.contains(view2) {
//your actions
}