我有UITableView
填充HomeKit
的“特征”数据。 UITableView
使用自定义UITableViewCell
。该单元具有标签和开关。单元格@IBOutlet
和@IBAction
正常工作,允许我查看标签并切换/动画所有单元格中的开关。但是,我需要切换到UITableView
中的数据源,我不知道如何从自定义单元格中的UITableView
引用/访问数据。我已经确定了如何获得所选单元格的indexPath
。
我知道这里有一个简单的答案......请帮助这个iOS / XCode / Swift初学者。
import UIKit
import HomeKit
class CellServicesCharacteristics: UITableViewCell {
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var switch1: UISwitch!
@IBAction func switch1Act(sender: UISwitch) {
var cell = sender.superview?.superview as! CellServicesCharacteristics
var tableView = cell.superview?.superview as! UITableView
let indexPath = tableView.indexPathForCell(cell) as NSIndexPath!
// How do I reference the Data Source from the TableView
// so I can write to the Data Source?
if switch1.on {
label2.text = "On"
// write to data source in tableview
} else {
label2.text = "Off"
// write to data source in tableview
}
}
override func awakeFromNib() {
super.awakeFromNib()
//Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
答案 0 :(得分:0)
进入那里的didSelectRowAtIndexPath,你会得到那个
XMLRPC::Create.new.methodResponse
答案 1 :(得分:0)
有很多方法可以做到这一点 您的任务:在切换开关时对HMCharacteristic对象执行操作。
第一种方法
我 - 在自定义单元格中创建HMCharacteristic类型的属性
II - 在Tableview的cellForRowAtIndexPath中分配HMCharacteristic对象。
III - 在您的自定义单元格类中,您可以访问HMCharacteritic类的对象
IV - 在switch1Act()方法调用中,您可以对HMCharacteristic的writeValue()方法执行操作
第二种方法
我 - 您可以在Customcell类中定义委托,并在UITableview的类中实现委托。
II - 在switch1Act()方法调用中调用此委托并传递适当的索引。
III - 在Tableview的实现类中,委托方法将调用。您可以从char数组中获取HMCharacteristic,以对特征执行任何操作。
第3种方法
我 - 您可以通过为customcell的切换对象设置目标,在Tableview的类本身中实现switch1Act()方法。
II - 您将在Tableview的类中接收方法调用,因此无需将HMCharacteristic作为属性传递