Swift循环遍历UITableView中的所有UITextViews

时间:2018-05-18 18:39:00

标签: swift

我生成了一个TableView,其中包含我从API中获取的项目列表。结果是它向我展示了一个带有UILabel和UITextView的TableView。 代码工作并给我想要的结果:

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:FormCell = self.tableView.dequeueReusableCell(withIdentifier: "cell") as! FormCell
        cell.formLabel.text = (self.fetchedData[indexPath.section] as! String)
// id is available = (self.fetchedDataID[indexPath.section] as! String)
        return cell
    }

    class FormCell: UITableViewCell {
        @IBOutlet weak var formLabel: UILabel!
        @IBOutlet var formAnswer: UITextView!
    }

但现在我想提交"答案"在UITextViews中给出的所有formAnswer。怎么做到这一点?

我想要POST到API的结果如下:

let params = [
    "id-of-": "theValueOfTheFormAnswer", // every Value of each UITextView 
] as [String : Any]

let requestURL = "/post-url"
let request = Alamofire.request(requestURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: nil)

1 个答案:

答案 0 :(得分:2)

你应该尝试从表格视图中的所有单元格中检索所有文本视图 - 这肯定永远不会起作用,因为单元格(及其所有子视图)可能会被重用,因此数据从滚动离开屏幕的单元格将永远丢失。

相反,每次在数据模型中修改文本视图(或丢失焦点或其他内容)时,您都必须存储数据。用户完成后,您只需将模型的数据发送到后端即可。

设置UITextViewDelegate委托并使用以下方法之一更新模型:

  • textViewDidEndEditing
  • textViewDidChange