如何刷新ViewController代码?

时间:2014-03-26 08:29:31

标签: iphone objective-c uitableview uiviewcontroller

我有一个带有自定义行(图像和文本)的表的视图控制器。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *simpleTableIdentifier = @"CustomRow";
    CustomRow *cell = (CustomRow *)[_default dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomRow" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
    x = x + 1;
    trovato = [util cerca:giorno :[NSString stringWithFormat:@"%d", x]];
    if ([trovato isEqualToString:@"NO"]) {
        cell.pallino.image = [UIImage imageNamed:@"grigio.png"];
    } else {
        cell.pallino.image = [UIImage imageNamed:@"verde.png"];
    }
    cell.title.text = [right objectAtIndex:indexPath.row];
    return cell;
}

这项工作在我第一次打开View控制器时更正了,当我点击一行时我必须打开另一个视图控制器并进行一些更改。当我带着导航栏返回时,我希望表格再次刷新图像(最重要的事情),但我不能这样做。我该怎么做????

由于

3 个答案:

答案 0 :(得分:0)

当您从子视图返回时,您必须刷新表格视图(reloadData),例如在viewWillAppear函数中。

答案 1 :(得分:0)

  1. 点击该行的行保存索引路径
  2. 你在detailviewcontroler(你的下一个视图控制器,按行后打开)
  3. 当你回来检查
  4. 如果有变化那么reloadRowsAtIndexPaths:方法来实现其他单元格什么都不做(因为你没有做任何改动) 要检查您是否对detailviewcontroler进行了任何更改,您可以使用委托或最简单的方法在从detailviewcontroler回溯时重新加载所选行。 你可以刷新细胞 使用已保存的indexpath
  5. -(void) viewWillAppear:(BOOL)animated

答案 2 :(得分:0)

您可以使用以下方式,只需在-(void)viewDidAppear:(BOOL)animated

上使用它
[self.tableView reloadData];

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];

希望这会有用