将表格单元格文本标签数据传递给swift中的数组

时间:2015-05-05 08:56:11

标签: ios uitableview swift uitabbarcontroller

我想将表格单元格textLabel的{​​{1}}数据传递给UITableViewController。这些单元格具有NSArray名称identifier和附件类型Cells

2 个答案:

答案 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单元格中的内容创建循环引用。