从动态表格视图中的文本字段获取文本并将其插入到数组中
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.tag
和textFieldDidBeginEditing
代表UITextFieldDelegate
创建一个数组来存储文本字段文本。对于添加到表中的每个 textField
,您必须在数组数据中添加一个空值并将表 indexPath.row
设置为 textField.tag
所以在textFieldDidBeginEditing
委托中,您可以访问textField.tag
,并且可以将textField.text
存储到data[textField.tag]
数组中。
有很多方法可以让它发挥作用。这是其中一种方式;-)
【讨论】:
使用tag
属性存储索引路径信息是非常脆弱的,容易被破坏。您可以通过在UITableView
或UICollectionView
上调用:indexPath(for:)
来获取任何单元格的索引路径
@RoboticCat,我不这么认为,我在某个项目中使用了Tag
,这很成功。我正在介绍这些工具(标签、文本字段委托),所以他/她可以使用这些工具来完成它。
它很脆弱,因为你无法控制属性(其他代码可能会覆盖标签),移动单元格会导致属性为错误值而无需编写和维护额外的代码,不容易支持部分和行/项目,很容易导致运行时异常,难以调试(而属性/引用只出现在 LLDB 中,并且使用它的代码未在编译时检查正确性。使用 tag
属性是一种反模式,因为所有这些原因等等。如果你在互联网上搜索ios tag property fragile
(或类似的),你会发现例子
对不起,我不明白以上是关于从动态表格视图中的文本字段获取文本并将其插入到数组中的主要内容,如果未能解决你的问题,请参考以下文章
从 Swift (3.1) 表格视图中动态创建的单元格获取有序的文本字段数据