Swift:从另一个类更改uilabel文本



Index.swift

let boxClass = SelectBox()
override func viewDidLoad() {
super.viewDidLoad()
reloadData()
boxClass.openSelector(defValue: myView)
}
func reloadData(){
self.nowOnline.text = "Waiting ..." 
countOnline = 2 
}

此代码运行良好。

但如果我想更改另一个类的值,则不使用

SelectBox.swift

class SelectBox {
internal func openSelector(myView:UIView){
myView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleClick(sender:))))
}
}
@objc func handleClick(sender: UITapGestureRecognizer) {
reloadData()
}

代码故事:

1-我去索引应用

2-reloadData()工作良好

3-我点击myViewreloadData()再次调用

4-应用程序崩溃,因为nowOnline返回nil

class SelectBox {
let indexObj = index()
internal func openSelector(myView:UIView){
myView.addGestureRecognizer(UITapGestureRecognizer(target: self, action:    #selector(handleClick(sender:))))
}
@objc func handleClick(sender: UITapGestureRecognizer) {
indexObj.reloadData()
}
}

最新更新