1

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

我想通过didSelectRowAtIndexPath我用过的方法来实现

UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSString *num=cell.textLabel.text; 

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

4

2 回答 2

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您在评论中引用的实例作为用于填充表格单元格标签的数据源所做的工作。请注意,此方法根本不访问视图 - 它直接访问数据的原始源以获取您需要的内容。与其他解决方案不同,这也适用于任何类型的数据,而不仅仅是整数。

希望这会有所帮助,如果您有任何问题,请告诉我!

于 2012-09-30T17:56:02.743 回答
-3

与其尝试从文本标签中提取它,不如将单元格的标记值设置为 cellForRowAtIndexPath 方法中的数字,并在方法 didSelectRowAtIndexPath 中使用它。

cellForRowAtIndexPath

cell.tag = vc.Number;

didSelectRowAtIndexPath

UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];  
NSUInteger num=cell.tag; 
于 2012-09-30T09:57:10.213 回答