使用didSelectRowAtIndexPath从表中获取值

时间:2012-09-29 07:17:09

标签: ios uitableview

我正在尝试从表视图控制器获取值并将其发送到另一个表视图控制器。

我想通过我使用

的方法didSelectRowAtIndexPath来实现它
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSString *num=cell.textLabel.text; 

这里的问题是单元格包含数字和字符串,但我只想要数字 有没有办法只获得数字?

2 个答案:

答案 0 :(得分:4)

我几乎没有理由想到在标签或视图标签中存储有关数据的信息的位置是个好主意。它使程序更难写,更难理解。相反,使用提供数据的相同方法首先放入视图中。这是一个例子:

- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    id dataObject = [self dataForIndexPath:indexPath]; // assuming you called this in ..cellForRow... to provide the "vc" instance you mentioned in your comment
    int value = dataObject.number;
    //Now go do work with the value you extracted. 
}

此方法dataForIndexPath:仅表示为将您在评论中引用的vc实例作为用于填充表格单元格标签的数据的来源而完成的工作。请注意,此方法根本不访问视图 - 它可以直接访问数据的原始源,以获得您所需的内容。与其他解决方案不同,这也适用于任何类型的数据,而不仅仅是整数。

希望这会有所帮助,如果您有任何问题,请与我联系!

答案 1 :(得分:-3)

不是尝试从textlabel中提取它,而是将单元格的标记值设置为cellForRowAtIndexPath方法中的数字,并在方法didSelectRowAtIndexPath中使用它。

的cellForRowAtIndexPath

cell.tag = vc.Number;

didSelectRowAtIndexPath方法

UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSUInteger num=cell.tag;