Ios 是否将UITableView单元格文本字段值添加到数组?(Swift)

Ios 是否将UITableView单元格文本字段值添加到数组?(Swift),ios,swift,uitableview,Ios,Swift,Uitableview,我有一个UITableView,其中单元格包含3个textFields 每个单元格都是相同的,并使用每个单元格中的3textFields从用户处收集相同的输入数据:“事件”、“日期”和“回顾” 在用户选择要创建的条目数量以及单元格复制这些表单字段之后,我希望获取每个单元格的值并将其放入名为: var事件=[]var日期=[]和var审查=[]。或者,将事件、日期和审阅作为一个数组放入一个数组中 我如何才能在每个表单元格中获取用户的输入、提取数据并将其存储到这些数组中 我搜索过谷歌但没有成功。。。

我有一个
UITableView
,其中单元格包含3个
textField
s

每个单元格都是相同的,并使用每个单元格中的3
textField
s从用户处收集相同的输入数据:“事件”、“日期”和“回顾”

在用户选择要创建的条目数量以及单元格复制这些表单字段之后,我希望获取每个单元格的值并将其放入名为:
var事件=[]
var日期=[]
var审查=[]
。或者,将事件、日期和审阅作为一个数组放入一个数组中

我如何才能在每个表单元格中获取用户的输入、提取数据并将其存储到这些数组中

我搜索过谷歌但没有成功。。。(吞咽)救命

更新

这里有更多的信息来帮助你理解我的意思。用户说他们想在日记中记下3个条目。然后,UITableView将填充3个相同的单元格:

UITABLE单元格1

  • 事件[空白文本字段]

  • 日期[空白文本字段]

  • 查看[空白文本视图]

UITABLE单元格2

  • 事件[空白文本字段]

  • 日期[空白文本字段]

  • 查看[空白文本视图]

UITABLE单元格3

  • 事件[空白文本字段]

  • 日期[空白文本字段]

  • 查看[空白文本视图]

之后,这些数据被转换成多维JSON数据,并由PHP解析(这部分已经完成,可以处理存根数据)。我的目标是让Swift中的数据最终看起来像这样:

var  userData  = [
[
    "event": "user event 1",
    "date": "user date 1",
    "review": "user review 1"
],
[
    "event": "user event 2",
    "date": "user date 2",
    "review": "user review 2"
],
[
    "event": "user event 3",
    "date": "user date 3",
    "review": "user review 3"
] ]
  • 您需要使用以下方法获取XPath中的所有可见单元格:

    NSArray *paths = [self.tableView indexPathsForVisibleRows];
    
  • 然后获取某个数组中的所有单元格:

    NSMutableSet*visibleCells=[[NSMutableSet alloc]init]

    for (NSIndexPath *path in paths) {
        [visibleCells addObject:[tableView cellForRowAtIndexPath:path]];
    }
    
  • 然后,您可以从每个单元格中获取textfield值:

    对于(UITableViewCell*VisibleCell中的此单元格){ //打印文本字段 NSLog(@“%@\n”,thisCell.textField.text); }


  • 希望能有所帮助。

    您正在考虑的策略叫做。虽然它可以工作,但至少在我看来,它会更难维护,更容易出现bug。面向对象的东西会更好地满足您的需求。所以,我要做的是创建一个模型对象并创建这些对象的数组来存储数据

    struct MyModel {
        let event: String
        let review: String
        let date: NSDate
    }
    
    然后,假设您有一个如下所示的单元格:

    class MyTableCell: UITableViewCell {
    
        @IBOutlet weak var eventLabel: UILabel!
        @IBOutlet weak var dateLabel: UILabel!
        @IBOutlet weak var reviewTextView: UITextView!
    }
    
    在表视图控制器中将数据组织为这些模型的数组。填充单元格时,请使用
    表视图(\uuxCELLFORROWATINDEXPATH:)
    方法中的
    indexPath
    参数从模型数组中选择模型

    class MyTableViewController: UITableViewController {
    
        var models = [MyModel]()
    
        lazy var dateFormatter = NSDateFormatter()
    
        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            if let cell = tableView.dequeueReusableCellWithIdentifier( "myIdentifier" ) as? MyTableCell {
                let model = self.models[ indexPath.row ]
    
                cell.eventLabel.text = model.event
                cell.dateLabel.text = self.dateFormatter.stringFromDate(model.date)
                cell.reviewTextView.text = model.review
    
                return cell
            }
            fatalError( "Could not create cell" )
        }
    
        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return self.models.count
        }
    }
    

    谢谢你的建议!尽管这个答案似乎适合于获取预先存在的数据和构建表格单元。我的问题是让用户填写空文本字段,然后提取这些值添加到数组中。你能提供一些指导吗?非常感谢!谢谢你的建议。你会知道这样做的快捷版本吗?尽管我希望自己在Obj-C中更详细一些,但我只是一个敏捷的人:)