我生成了一个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)
答案 0 :(得分:2)
你应该不尝试从表格视图中的所有单元格中检索所有文本视图 - 这肯定永远不会起作用,因为单元格(及其所有子视图)可能会被重用,因此数据从滚动离开屏幕的单元格将永远丢失。
相反,每次在数据模型中修改文本视图(或丢失焦点或其他内容)时,您都必须存储数据。用户完成后,您只需将模型的数据发送到后端即可。
设置UITextViewDelegate
委托并使用以下方法之一更新模型: