点击时更改UITableViewCell的文本

时间:2012-05-23 15:30:28

标签: ios uitableview

我正在尝试更新UITableViewCell,当它被点击以获得一些反馈时:

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

    if ([[self.menuItems objectAtIndex:aPath.row] isEqualToString:@"AirPrint Order"]) {

        UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
        cell.textLabel.text=@"Generating Order Receipt";
        NSArray *nsa = [[NSArray alloc] initWithObjects:indexPath, nil];
        [tableView reloadRowsAtIndexPaths:nsa withRowAnimation:UITableViewRowAnimationNone];
    }
}

这个代码似乎什么也没做,即使在调试器中它确实在if语句中使用它,但是单元格文本没有发生任何事情。

1 个答案:

答案 0 :(得分:7)

当您致电reloadRowsAtIndexPaths时,它实际上再次调用cellForRowAtIndexPath:并重新加载单元格,删除您在didSelectRowAtIndexPath中应用的更改。我建议您做的是:使用didSelectRowAtIndexPath方法更新您的数据,并在cellForRowAtIndexPath中阅读。