Ios 是否将UITableView单元格文本字段值添加到数组?(Swift)
我有一个Ios 是否将UITableView单元格文本字段值添加到数组?(Swift),ios,swift,uitableview,Ios,Swift,Uitableview,我有一个UITableView,其中单元格包含3个textFields 每个单元格都是相同的,并使用每个单元格中的3textFields从用户处收集相同的输入数据:“事件”、“日期”和“回顾” 在用户选择要创建的条目数量以及单元格复制这些表单字段之后,我希望获取每个单元格的值并将其放入名为: var事件=[]var日期=[]和var审查=[]。或者,将事件、日期和审阅作为一个数组放入一个数组中 我如何才能在每个表单元格中获取用户的输入、提取数据并将其存储到这些数组中 我搜索过谷歌但没有成功。。。
UITableView
,其中单元格包含3个textField
s
每个单元格都是相同的,并使用每个单元格中的3textField
s从用户处收集相同的输入数据:“事件”、“日期”和“回顾”
在用户选择要创建的条目数量以及单元格复制这些表单字段之后,我希望获取每个单元格的值并将其放入名为:
var事件=[]
var日期=[]
和var审查=[]
。或者,将事件、日期和审阅作为一个数组放入一个数组中
我如何才能在每个表单元格中获取用户的输入、提取数据并将其存储到这些数组中
我搜索过谷歌但没有成功。。。(吞咽)救命
更新
这里有更多的信息来帮助你理解我的意思。用户说他们想在日记中记下3个条目。然后,UITableView将填充3个相同的单元格:
UITABLE单元格1
- 事件[空白文本字段]
- 日期[空白文本字段]
- 查看[空白文本视图]
- 事件[空白文本字段]
- 日期[空白文本字段]
- 查看[空白文本视图]
- 事件[空白文本字段]
- 日期[空白文本字段]
- 查看[空白文本视图]
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"
] ]
NSArray *paths = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *path in paths) {
[visibleCells addObject:[tableView cellForRowAtIndexPath:path]];
}
希望能有所帮助。您正在考虑的策略叫做。虽然它可以工作,但至少在我看来,它会更难维护,更容易出现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中更详细一些,但我只是一个敏捷的人:)