表视图未正确更新

时间:2012-08-18 16:02:15

标签: objective-c ios

我的项目很大,我不确定哪个代码段导致问题,所以我只是描述问题。我的初始视图是UITableView.此视图有navigation bar,其中一个按钮是“edit”按钮。按“编辑”按钮可以进入模态视图控制器,其中还有另一个UITableView。此UITableView的属性是核对清单table view(可以选择[已选中]或取消选中多个项目。选择完项目后,它会将所选对象的数组保存到NSUserDefault.现在,您回到原始页面,您所选择的事物应该显示在UITableView上。我将正在将UITableView数据输入的数组更改为数组从NSUserDefaults抓起来。然后我打电话给[tableView reloadData],没有任何变化。我真的很感激任何提示。如果你们认为你知道代码的哪一部分让我感到悲伤,请回复,我会发帖。谢谢(顺便说一句,我知道我应该将view controller作为delegate modal view controllers的主要内容。提前致谢。

2 个答案:

答案 0 :(得分:1)

在模态视图控制器中进行更改后调用[[NSUserDefaults standardUserDefaults] synchronize];。这将保存更改。

每次重新加载表格行时,请务必更新单元格内容。

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    Bleh *data = (Get your data for this row);

    cell.textLabel.text = data.myValue;
    cell.imageView.image = data.myImage;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    }

    [self configureCell:cell atIndexPath:indexPath];

    return cell;
}

答案 1 :(得分:0)

当您从tableview方法调用返回时,尝试在viewwillappear上重新加载modelviewcontroller

- (void)viewWillAppear:(BOOL)animated{
[yourTableView reloadData];
}