我正在尝试更新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语句中使用它,但是单元格文本没有发生任何事情。
答案 0 :(得分:7)
当您致电reloadRowsAtIndexPaths
时,它实际上再次调用cellForRowAtIndexPath:
并重新加载单元格,删除您在didSelectRowAtIndexPath
中应用的更改。我建议您做的是:使用didSelectRowAtIndexPath
方法更新您的数据,并在cellForRowAtIndexPath
中阅读。