gpt4 book ai didi

ios - 如何获取 UITableView 中可编辑单元格的值? swift

转载 作者:行者123 更新时间:2023-11-28 09:00:32 26 4
gpt4 key购买 nike

我有一个包含多个单元格的 UITableView。每个细胞都有一个标签和一个 UITextField。当我加载 ViewController 时,UITextFields 具有初始值,用户可以编辑这些值。现在我想添加一个保存按钮来保存更改,但我在编辑后获取 UITextFields 中的值时遇到问题。我想我需要为文本字段使用标签,但我不知道如何使用。这是我的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:EditProfileCell = tableView.dequeueReusableCellWithIdentifier("profile") as! EditProfileCell
if (indexPath.row == 1){
cell.setRow("label", value: "initial value")
cell.itemValue.tag = indexPath.row
}

@IBAction func saveTapped(sender: UIButton) {
print(self.tableView(profileTableView, cellForRowAtIndexPath: NSIndexPath(forRow: 1, inSection: 1)).viewWithTag(1))
}

点击保存按钮时,它会打印初始值而不是编辑后的值。我需要有关在编辑后获取值的帮助。

编辑 1:

我发现我可以在 didSelectRowAtIndexPath 函数中获取编辑后的值。但问题是当我单击文本字段(文本字段进入编辑模式)时,直到我点击单元格内但文本字段外的空间时才会调用 didSelectRowAtIndexPath。所以我的问题变成了当我只点击文本字段时如何触发 didSelectRowAtIndexPath。

最佳答案

问题是,当您在内部调用 saveTapped 时,您正在调用 cellForRowAtIndexPath 并且在那里您有:

cell.setRow("label", value: "initial value")

基本上这就是您获得初始值的原因。另一个问题是表格 View 上的单元格被重用。也就是说,您可以拥有 1000000 条记录,但 TableView 只会创建约 9-12 个单元格,并将使用它们来显示这 1000000 行中任何一行的信息。

您需要做的是拥有一个模型。某种对象,您可以在其中存储和检索单元格的这些值。在您的案例中,一个自然的选择是一个包含字符串的数组。请检查此 tutorial并特别注意 NSArray *tableData; 是如何使用的。

祝你好运! :D

关于ios - 如何获取 UITableView 中可编辑单元格的值? swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com