如何在另一个表格视图单元格内使用按钮添加表格视图单元格?

时间:2019-06-26 20:32:28

标签: swift xcode uitableview

我正在尝试制作待办事项列表应用程序,但在尝试将子任务添加到我的主要待办事项中时遇到麻烦。我在每个表格视图单元格中都有一个按钮,当按下该按钮时,我希望它添加另一个可以键入并保存“子任务”的表格视图单元格。

    //set up tableView row amount
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return taskData.count
    }

    //set up what is in the tableView row
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        //This is for a main task
        let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as! CustomTableViewCell

        cell.label.text = taskData[indexPath.row]

        return cell
    }

1 个答案:

答案 0 :(得分:0)

使用委托将数据从单元格传递到ViewController,然后重新加载tableView。

CustomTableViewCell:

protocol CustomTableViewCellDelegate: class {
   func customTableViewCellButtonClicked(_ cell: CustomTableViewCell)
}

class CustomTableViewCell: UITableViewCell {
   weak var delegate: CustomTableViewCellDelegate?

   func buttonClicked() {
       self.delegate?.customTableViewCellButtonClicked(self)
   }
}

ViewController:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "TaskCell", for: indexPath) as! CustomTableViewCell
    cell.label.text = taskData[indexPath.row]
    cell.delegate = self

    return cell
}

func customTableViewCellButtonClicked(_ cell: CustomTableViewCell) {
     // add the task you need from that cell to your tasks list.
     taskData.append(....)
     //reload your tableView
     self.tableView.reloadData()
}