如何从自定义UITableViewCell写入TableView中的数据

时间:2015-05-06 12:09:26

标签: ios iphone uitableview

我有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
}

}

2 个答案:

答案 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作为属性传递