UITableViewCell:如何在第五行更新textLabel.text?

时间:2011-11-22 13:38:35

标签: iphone objective-c ios uitableview

我创建并完成了UITableViewCell。当我按下UINavigationButton时,我想在第五行更新textLabel.text。我怎么能这样做?

UITableViewCell *cell;
cell = [tableView_ dequeueReusableCellWithIdentifier:@"any-cell"];
if(cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"any-cell"] autorelease]; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text = leftString;

2 个答案:

答案 0 :(得分:15)

直接的方式是,

NSIndexPath *fifthRow = [NSIndexPath indexPathForRow:4 inSection:0];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:fifthRow];
cell.textLabel.text = @"the updated text";

但是,更好的方法是更新 dataSource 并重新加载 tableView 或只是行。

答案 1 :(得分:0)

您可以告诉UITableView在处理按钮编辑的方法中刷新该行(使用reloadRowsAtIndexPaths:withRowAnimation:)。

然后在UITableViewDataSource方法cellForRowAtIndexPath:中有一个特例。

编辑:我看到@ EmptyStack的答案后删除了这个答案,这对我来说很好看。也许这个答案将涵盖他更新DataSource的建议?