从动态表格视图中的文本字段获取文本并将其插入到数组中

Posted

技术标签:

【中文标题】从动态表格视图中的文本字段获取文本并将其插入到数组中【英文标题】:get text from textfield in dynamic tableview and insert it in array swift 【发布时间】:2017-02-17 20:08:12 【问题描述】:

我正在尝试从动态表格视图中的文本字段中获取文本,这意味着我有一个或多个文本字段我尝试过,但它不起作用

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "GPACell", for: indexPath) as! TableViewCell

    coursesGrade.insert(cell.grade.text!, at: indexPath.row)

    return cell

【问题讨论】:

【参考方案1】:

您应该使用textField.tagtextFieldDidBeginEditing 代表UITextFieldDelegate

创建一个数组来存储文本字段文本。对于添加到表中的每个 textField,您必须在数组数据中添加一个空值并将表 indexPath.row 设置为 textField.tag

所以在textFieldDidBeginEditing 委托中,您可以访问textField.tag,并且可以将textField.text 存储到data[textField.tag] 数组中。

有很多方法可以让它发挥作用。这是其中一种方式;-)

【讨论】:

使用tag属性存储索引路径信息是非常脆弱的,容易被破坏。您可以通过在UITableViewUICollectionView 上调用:indexPath(for:) 来获取任何单元格的索引路径 @RoboticCat,我不这么认为,我在某个项目中使用了Tag,这很成功。我正在介绍这些工具(标签、文本字段委托),所以他/她可以使用这些工具来完成它。 它很脆弱,因为你无法控制属性(其他代码可能会覆盖标签),移动单元格会导致属性为错误值而无需编写和维护额外的代码,不容易支持部分和行/项目,很容易导致运行时异常,难以调试(而属性/引用只出现在 LLDB 中,并且使用它的代码未在编译时检查正确性。使用 tag 属性是一种反模式,因为所有这些原因等等。如果你在互联网上搜索ios tag property fragile(或类似的),你会发现例子 对不起,我不明白

以上是关于从动态表格视图中的文本字段获取文本并将其插入到数组中的主要内容,如果未能解决你的问题,请参考以下文章

从 Swift (3.1) 表格视图中动态创建的单元格获取有序的文本字段数据

点击保存按钮并存储在字典中时获取表格视图单元格中的文本字段?

从 SQL 获取数据并将其插入到 Java 文本字段中

在动态表格视图中获取文本字段值

无法将文本从 UITextField 添加到数组

Swift:数组、文本字段和 UITableView