我需要在更改开关时调用带选择器的函数,但只有在我将开关设置为开启状态时才会调用:
cell.switchMy.addTarget(self, action: "openView", forControlEvents: UIControlEvents.ValueChanged)
func openView(){
var cell:CustomCell = self.tableView.dequeueReusableCellWithIdentifier("cell5") as CustomCell
if(cell.switchMy.on == true){
println("ON")
self.performSegueWithIdentifier("segueUnl", sender: self)
}
}
如果我使用此代码,请始终调用该函数,但如果开关状态为ON,我将控制...这怎么能正确?
答案 0 :(得分:3)
这是(几乎)正确的方法。只有当切换状态为on
时,才能调用方法。
但是您不需要从openView
方法中检索单元格。发件人将由调用者传递:
cell.switchMy.addTarget(self, action: "openView:", forControlEvents: UIControlEvents.ValueChanged)
func openView(sender: UISwitch){
if(sender.on) {
println("ON")
self.performSegueWithIdentifier("segueUnl", sender: self)
}
}
注意:addTarget
中使用的选择器需要从openView
更改为openView: