我想将表格单元格textLabel
的{{1}}数据传递给UITableViewController
。这些单元格具有NSArray
名称identifier
和附件类型Cells
答案 0 :(得分:0)
完全符合您要求的代码在这里:
func getCellsData() -> [String] {
var dataArray: [String] = []
for section in 0 ..< self.tableView.numberOfSections() {
for row in 0 ..< self.tableView.numberOfRowsInSection(section) {
let indexPath = NSIndexPath(forRow: row, inSection: section)
let cell = self.tableView.cellForRowAtIndexPath(indexPath)!
if cell.reuseIdentifier == "Cells" && cell.accessoryType == UITableViewCellAccessoryType.Checkmark {
dataArray.append(cell.textLabel!.text!)
}
}
}
return dataArray
}
但我想建议你找到不同的方法,因为这是tableView
的粗鲁遍历。您可能拥有可以为您提供所需数据的dataSource
模型。此外,此代码不会检查错误,例如cell
中某些indexPath
处没有文字
答案 1 :(得分:0)
我建议的两件事。
首先,看起来您正在使用复选标记附件来指示多个选择。它真的适合单一选择,如单选按钮。最好在tableview上使用allowMultipleSelections
选项。这将允许......
......第二件事。将单元格中的文本复制到数组中是错误的方法。最好问一下表视图并调用它- (NSArray *)indexPathsForSelectedRows
这将为您提供一系列指向选定单元格的索引路径,然后您可以请求每个单元格并从中获取所需的任何数据。这为您提供了更好的实时数据,并防止您在不知情的情况下从tableview的视图控制器和tableview单元格中的内容创建循环引用。