0

我有一个应用程序,当用户选择每一行时,我正在更改单元格背景图像。像这样

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    for (int i = 0; i < [tableView numberOfRowsInSection:0]; i++) {

        UITableViewCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];

        cell.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"white_cell.png"]]; 

    } 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"white_cell_check.png"]];
  if (indexPath != nil) {
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
   }




}

`它工作正常。我的问题是从详细视图当我弹回前一个视图时,即到 tableview 控制器,tableview 中更改的背景图像保持不变。但我需要它是正常的。任何人都可以帮我?

4

2 回答 2

1

当您的控制器重新出现时,只需重新加载表格,它将重新加载数据,并且didSelectRowAtIndexPath不会被调用,因此您的单元格将具有初始背景。

- (void)viewWillAppear:(animated){
   [super viewWillAppear:animated];
   [instanceToYourTableView reloadData];
}
于 2013-01-26T11:09:19.183 回答
0

在 cellForRowAtIndexPath 中,您应该恢复 cellBackground,并在 viewWillAppear 上调用 reloadData

于 2013-01-26T11:16:31.673 回答