我为"编辑个人资料"设置了自定义的tableview单元格。我正在开发的当前应用程序上的viewcontroller。自定义单元格具有标签(用于类别)和输入的文本字段。例如: "姓名(标签)John Doe(输入)" 我使用数组作为标签标题,另一个用于文本字段中的占位符。我想要做的是访问每个单独的文本字段,以便我可以设置初始文本(用户已存储到服务器的信息)。我怎样才能访问特定的文本字段?我的客人是我必须基于特定的indexPath,但我不太确定。有没有办法可以编程方式设置每个textfields标签,以便我可以轻松访问它们?
答案 0 :(得分:0)
您不访问每个文本字段。要重复使用单元格,这意味着将重复使用标签和文本字段。所有数据都属于您的数据模型。然后在您的cellForRowAt
方法中,转到数据模型并获取该单元格的数据并填充单元格。
您的视图控制器也应该是每个单元格文本字段的委托。每当更新文本字段时,都会使用新文本更新数据模型。
这样做可确保您的数据模型始终是最新的,并始终包含所有行的所有数据。不要使用您的单元格来保存数据。仅使用它们来显示数据。
在每个文本字段上使用标记以对应其当前行可以起作用,但前提是不能更改表行(重新排序,删除,只添加到当前行的末尾)。
答案 1 :(得分:0)
你应该试试这个:
首先为该特定单元格创建一个子类。
放置文本字段并添加委托
in numberofrows func:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4//return whatever you want
}
in cellForRowAtIndexPath func:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! customCell
cell.textfld.tag = indexPath.row//this is the textfield in cell
cell.textfld.delegate = self
cell.selectionStyle = UITableViewCellSelectionStyle.Gray
return cell
}
textFieldDidBeginEditing func:
func textFieldDidBeginEditing(textField: UITextField) {
//delegate method
print(textField.tag)//here you will get particular textfield tag.
}
希望它对你有用......
答案 2 :(得分:-1)
假设您没有重复使用单元格(在这种情况下不应该重复使用单元格),您可以轻松地在cellForRow:atIndexPath
内的这些文本字段中创建全局引用(在视图控制器内)。通过这种方式,您可以随时访问文本字段,而无需处理单元格。