1

我正在尝试更新 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 语句中,但单元格文本没有发生任何事情。

4

1 回答 1

7

当您调用reloadRowsAtIndexPaths它时,它实际上会cellForRowAtIndexPath:再次调用并重新加载单元格,删除您在didSelectRowAtIndexPath. 我建议您做的是:在didSelectRowAtIndexPath方法中更新您的数据并将其读入cellForRowAtIndexPath.

于 2012-05-23T15:32:56.280 回答