我试图弄清楚如何以有序的方式从tableview中的单元格获取文本字段数据。到目前为止,我能够在每个文本字段中键入一个检索类型数据。要按照正确的顺序执行此操作,尽管用户必须编辑第一个单元格...最后一个单元格,任何其他方式,并且数据的顺序不正确。
例如:
我让程序用文本字段创建5个单元格,
我目前使用它的方式我的dataArray看起来与此相同,因为它是根据输入的时间而不是单元格的顺序存储的。 我想输入上面的例子,但我的数据是这样的:
这是我的文本域编辑代码:
@IBAction func TitleEditBegin(_ sender: UITextField) {
}
@IBAction func TitleEditEnd(_ sender: UITextField) {
print(sender.tag) // Debug
titleArray.append(sender.text!)
}
我暂时知道任何其他更改都会附加到titleArray,但我想先解决排序问题。
谢谢!
编辑:我忘了添加如何创建单元格,代码如下:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = TitleSessionTableView.dequeueReusableCell(withIdentifier: textCellIdentifier, for: indexPath) as! TitleSessionCell
cell.SessionTitleLabel.text = "Title"
// cell.SessionTitleField.text = "Default"
cell.SessionTitleField.tag = indexPath.row
cell.SessionTitleField.delegate = self
print(indexPath.row) // Debug
return cell
}
编辑2:添加我定义文本字段的位置。
import Foundation
import UIKit
class TitleSessionCell: UITableViewCell{
@IBOutlet weak var SessionTitleField: UITextField!
@IBOutlet weak var SessionTitleLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
}
答案 0 :(得分:0)
最简单的方法是使用我相信的词典。我会为所有textField分配一个不同的标签。因此,对于textField1,您会说textField1.tag = 1
。我没有看到你的文本字段的创建,所以很难显示添加它的最佳方式,但是在处理之后,我会将字典创建为类变量。
var textFieldDictionary: [Int: String] = [:]
然后将文本添加到其中:
if sender.text != nil && sender.text != "" {
textFieldDictionary[sender.tag] = sender.text
}
然后当您想要检索信息时,请执行以下操作:
for i in 0..<biggestTextFieldNumber {
if let text = textFieldDictionary[i] {
//do something with text
print(text)
}
}
或者您可以在需要时使用以下方法获取特定的数字值:
textFieldDictionary[numberYouWant]
我希望这有帮助!