我有一个带有几个项目的表视图(所有文本)。当用户单击该行时,我希望该单元格中的文本添加到数组中。
如何从单元格中取出文本?
我已经拥有:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
我可以用一条简单的线来抓取用户点击的单元格中的文本吗?
答案 0 :(得分:94)
使用UITableView
's cellForRowAtIndexPath:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
}
答案 1 :(得分:6)
这与你在cellForRowAtIndexPath中所做的相反。
[myArray addObject: [datasource objectAtIndex:indexPath.row]];
答案 2 :(得分:4)
通常,您可以在Apple文档中找到此类问题的大多数答案。对于这种情况,请在UITableView Class Reference下查看,您将看到一个节标题:访问单元格和节。这为您提供了以下方法:
– cellForRowAtIndexPath:
现在使用它来访问单元格,然后使用从单元格中获取文本(如果您不确定如何,请查看UITableViewCell Class Reference。
总之,您的方法可能如下所示:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = cell.textLabel.text;
[myArray addObject:cellText];
}
答案 3 :(得分:3)
我的第一个猜测是获取索引,[indexPath row];然后从数据源(数组或核心数据)中获取数据,而不是直接从表本身获取数据。
答案 4 :(得分:2)
Swift版本:
let cell: UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
let cellText: String = cell.textLabel.text