Ios 单击UITableViewCell时更新标签

Ios 单击UITableViewCell时更新标签,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个包含许多表视图单元格的表视图。当用户单击单元格时,我想更新单元格的标签文本 以下是我的表视图控制器类: class MyTableViewController: UITableViewController { var data = [Data]() override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.d

我有一个包含许多表视图单元格的表视图。当用户单击单元格时,我想更新单元格的标签文本

以下是我的表视图控制器类:

class MyTableViewController: UITableViewController {
    var data = [Data]()

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        // Here I fetch and populate the data list
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cellIdentifier = "MyTableViewCell"

        guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? MyTableViewCell else {
            fatalError("The dequeued cell is not an instance of MyTableViewCell.")
        }

        let cellData = data[indexPath.row]

        cell.initialize(data: cellData)

        return cell
    }
}
这是我的表格视图单元类:

class MyTableViewCell: UITableViewCell {
    var data: Data?

    @IBOutlet weak var nameLabel: UILabel!

    func initialize(data: Data) {
        self.data = data

        if let cellName = data.name {
            nameLabel.text = cellName
        }
    }
}

当用户单击“表视图”单元格时,如何将上面的
名称标签的文本更改为“已单击”?

毫无疑问,您可以采用不同的方法来处理此问题,但我建议如下:

实现UITableViewDelegate方法
tableView(u:didSelectRowAt:)
tableView(u:didSelectRowAt:)
。在表视图中的单元格的数据模型中添加一个
selected
bool,并在选中/取消选中单元格时更新该bool的状态

然后修改
cellForRow(at:)
方法,使其使用
selected
标志来决定在标签中显示什么


最后,让您的
tableView(u∶didSelectRowAt:)
tableView(∶didSelectRowAt:)
方法告诉表视图重新加载新选择/取消选择的单元格。

我可以选择行并让它更改标签,但是,
diddescrowat
永远不会被触发。我还应该说,我希望用户能够选择许多表视图单元格,并且当用户选择/取消选择它们时,每个单元格都应该能够让标签的更改文本来回移动。我已经有一段时间没有处理跟踪表视图中的多个选择了。我似乎记得,在调用这些方法来选择/取消选择单元格之前,必须正确设置表视图。当选定单元格并再次点击时,该单元格是否取消高亮显示?