从Swift(3.1)表视图中的动态创建单元格获取有序TextField数据

时间:2016-11-04 19:31:06

标签: swift tableview textfield tableviewcell

我试图弄清楚如何以有序的方式从tableview中的单元格获取文本字段数据。到目前为止,我能够在每个文本字段中键入一个检索类型数据。要按照正确的顺序执行此操作,尽管用户必须编辑第一个单元格...最后一个单元格,任何其他方式,并且数据的顺序不正确。

例如:

我让程序用文本字段创建5个单元格,

  • textfield1:我输入第二个
  • textfield2:我输入第四个
  • textfield3:我先输入
  • textfield4:我输入了第五个
  • textfield5:我输入第三个

我目前使用它的方式我的dataArray看起来与此相同,因为它是根据输入的时间而不是单元格的顺序存储的。 我想输入上面的例子,但我的数据是这样的:

  • textfield1:我先输入
  • textfield2:我输入第二个
  • textfield3:我输入了第三个
  • textfield4:我输入第四个
  • textfield5:我输入了第五个

这是我的文本域编辑代码:

@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()
}


}

1 个答案:

答案 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]

我希望这有帮助!