如何访问 swift 5 中 tableview 单元格内的 textview 值?

How to access textview value which is inside tableview cell in swift 5?

我有一个 viewcontroller,里面有一个 table 视图和 2 个保存和取消按钮。 在 tableview 单元格中,我有一个 textview。在 textview 中添加一些文本后,我想显示该文本。我不确定如何在单击保存按钮时获取 table 查看文本。 (行数可能是动态的)。

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

                if let cell = tableview.dequeueReusableCell(withIdentifier: "SummaryManualEditContentCell", for: indexPath) as? SummaryManualEditTableCell {


                    cell.txtAnswers.text = "enter text here"

                    return cell
                }
            return UITableViewCell()
        }

@IBAction func btnSave(_ sender: Any) {
        print("textviewText1 + textviewText2 + and so on ")
   }

除了单击按钮之外,我还想将所有文本多个文本视图添加到一个字符串中。 有什么干净和最好的方法来实现这个目标吗?

感谢您的帮助!

您需要获取要获取其文本的单元格的indexPath 获取该索引路径的单元格,如

@IBAction func btnSave(_ sender: Any) {
      let indexPath = IndexPath(row: 0, section: 0)
      if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
        let text = cell.txtAnswers.text
        }
    }

如果您有多个带有 textFields 的单元格,您可以循环获取所有字段

  @IBAction func btnSave(_ sender: Any) {
var allTextViewsText = ""
       for i in 0...5{
          let indexPath = IndexPath(row: i, section: 0)
          if let cell = tableView.cellForRow(at: indexPath) as? SummaryManualEditTableCell {
            allTextViewsText += cell.txtAnswers.text
            }
        }
  print(allTextViewsText)
}

但请记住,此方法仅适用于可见单元格,否则对于不可见单元格,您将得到 nil

我建议您在每个具有 textView 的单元格中实现 textView:shouldChange,并委托给 tableView 的 viewController。当单元格中的文本发生更改时,委托应将更改传播到 viewController,后者会将值保存在变量中。

然后,当您按下保存按钮时,您只需从变量中获取值。