我有一个带有5个自定义UITableViewCells的UITableView。在自定义UITableViewCells中,我有我的UI元素的IBOutlets(UILabel,UITextField)。我无法为视图控制器中的UI元素创建IBOutlets,因为它们已经链接到我的自定义UITableViewCells。
我希望能够在按下“保存”类型的UIBarButtonItem时访问UITableViewCells中的数据。为了将我的UITableViewCells中的数据解析为我自己的类。
我已经在返回控制器中编写了unwind方法,并在源控制器中编写了prepareForSegue方法,使其正常工作。我只需要在特定时间从自定义UITableViewCells中检索数据(在保存时,而不是在完成编辑文本字段或取消选择表格行时)。
实现这种行为的“最佳做法”是什么?
答案 0 :(得分:2)
由于我不知道您的自定义单元格是什么样的,所以我只使用其中包含单个文本字段的单元格(名为myTextField
)作为示例。
在自定义单元格类中,添加如下属性:
var value: String? {
return myTextField.text
}
在保存按钮的@IBAction
方法中,执行以下操作:
var data = [String]()
let sections = numberOfSectionsInTableView(self.tableView)
for s in 0..<sections {
let rows = tableView(self.tableView, numberOfRowsInSection: s)
for r in 0..<rows {
let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: r, inSection: s)) as! YourCustomCell
data.append(cell.value)
}
}
现在你有一个字符串数组!
如果您的单元格数据不像字符串那么简单,请考虑使用Eureka。