UITableView DidSelectRowAtIndexPath?

时间:2011-12-06 18:32:02

标签: iphone objective-c ios xcode ipad

我有一个带有几个项目的表视图(所有文本)。当用户单击该行时,我希望该单元格中的文本添加到数组中。

如何从单元格中取出文本?

我已经拥有:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}

我可以用一条简单的线来抓取用户点击的单元格中的文本吗?

5 个答案:

答案 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