如何在UITableViews中获取UITextField的所有字符串值



我正在尝试创建一个数组,其中包含插入到表视图中的文本字段中的所有值。我目前正在使用以下代码:

func textFieldDidEndEditing(_ textField: UITextField) {
editedValues.append(textField.text!)
}
@IBAction 
func saveEditedProfile(_ sender: Any) {
UserDefaults.standard.set(profileNameTextField.text, forKey: "Name")
print(editedValues)
for i in 1...ProfileDataOptions().myProfileValues.count-1{
UserDefaults.standard.set("(i)", forKey: ProfileDataOptions().myProfileValues[i])
}
navigationController?.popViewController(animated: true)
}

然而,print函数只返回一个已编辑的值数组,我希望它返回每个文本字段的值,包括未编辑的值。如何创建此数组?

我假设当用户在texField上按Enter键时,您想要append-editedValues。使用

func textFieldShouldReturn(_ textField: UITextField) -> Bool{
editedValues.append(textField.text!)
return true
}

已编辑

var editedValue = ""
func textFieldDidEndEditing(_ textField: UITextField) {
editedValue = textField.text!
}

现在在

@IBAction func saveEditedProfile(_ sender: Any) {
UserDefaults.standard.set(profileNameTextField.text, forKey: "Name")
editedValues.append(editedValue)
for i in 1...ProfileDataOptions().myProfileValues.count-1{
UserDefaults.standard.set("(i)", forKey: ProfileDataOptions().myProfileValues[i])
}
navigationController?.popViewController(animated: true
)
}

您可以使用以下函数轻松获得表格值

func getTableCellsData() -> [String] {
//Your Array
arrData.removeAll()
for section in 0 ..< self.tblView.numberOfSections {
for row in 0 ..< self.tblView.numberOfRows(inSection: section) {
let indexPath = NSIndexPath(row: row, section: section)
let cell = self.tblView.cellForRow(at: indexPath as IndexPath) as! tblCell
//You get you cell value
self.arrData.append(cell.textField.text)
}
}
print(arrData)
return arrData
}

如果要保存单击按钮上的文本,那么最简单的方法就是在单击时获取值。如果您的行和节位于第0个位置。您可以根据您的行号或节号进行更改。例如:-

@IBAction func saveEditedProfile(_ sender: Any) {
let index = IndexPath(row: 0, section: 0)
let cell: XYZTableCell = self.myTableView.cellForRow(at: index) as! XYZTableCell
editedValues.append(cell.profileNameTextField.text ?? "")
editedValues.append(cell.abcTextfield.text ?? "")
UserDefaults.standard.set(profileNameTextField.text, forKey: "Name")
editedValues.append(editedValue)
for i in 1...ProfileDataOptions().myProfileValues.count-1
{
UserDefaults.standard.set("(i)", forKey: ProfileDataOptions().myProfileValues[i])
}
navigationController?.popViewController(animated: true)
}

let newArray=textField.text?。微调拆分(分隔符:"(

您可以使用此数组并替换现有数组,然后重新加载表视图!

相关内容

最新更新