我有一个tableviewcontroller,其中我有一个带标签和textview的自定义单元格:
class ContactInfoTableViewCell: UITableViewCell {
@IBOutlet weak var contactType: UILabel!
@IBOutlet weak var contactValue: UITextField!
}
此表的数据源是动态的。我要做的是将表格的每一行转换为字典[contactType: contactValue]
,但我不知道如何去做。
我是否需要在文本字段中附加某种类型的标识符?或者我循环遍历表的所有行并构建字典?
答案 0 :(得分:2)
你会有你的数据源,它会有那个字典数组,说数组被称为contactDictArray
在cellForRowAtIndexPath中,您可以将两个单元格属性contactCell.contactType.text
和contactCell.contactValue.text
设置为单元格索引处字典数组中的信息。
dataSource.contactDictArray[indexPath.row]
会为您提供类似["contactType": "mobile", "contactValue": "whateverInfoHere"]
为了在编辑时从文本字段中捕获信息,您可以将以下代码放在cellForRowAtIndexPath中:
contactCell.contactValue.delegate = self
contactCell.contactValue.tag = indexPath.row
您可以在视图控制器类的顶部添加UITextFieldDelegate,并添加您需要的文本字段委托中的任何委托方法。在这种情况下,它们可能是textFieldDidBeginEditing
或textFieldDidEndEditing
,然后从那里捕获单元格文本字段的信息。
在textFieldDidEndEditing
和textFieldShouldEndEditing
中,您可以输入以下代码:
let contactArrayIndex = textField.tag
var contactDict = contactDictArray[contactArrayIndex]
//access info in textField
//put code here to update the info for the dictionary in your array or to save that info in a dictionary property or whatever you need to do
点击保存按钮时,您可以执行某些操作来检索已保存在数据模型或视图控制器上的属性中的数据。
这会回答你的问题吗?
答案 1 :(得分:0)
即使我的问题的答案没有通过表格循环,但如果有人对此问题感兴趣,我确实设法找到了解决方法。
{ "classifiers": [{
"classes": [ { "class": "classname", "score": 0.522029 } ],
"classifier_id": "normalLeft_329785087", "name": "normalLeft" } ],
"image": "Testing_Left.zip/80589N.jpg"
},
{
"classifiers": [],
"image": "Testing_Left.zip/81860Y.jpg"
},