如何刷新数据和查看?

时间:2014-02-08 11:11:35

标签: ios core-data

我有VC1标签(显示我的任务数量)。 在VC2中,我在tableView中拥有所有任务,我可以删除它们(保存在COREDATA中的任务)

问题是,如果我有5个任务,标签显示“05”但是当我去VC2并删除一个任务,然后回到VC1它会在同一个标​​签上显示“05”和“04”并且相同位置,它就像VC1做'屏幕截图'。当我去其他VC或重新加载APP时,这是正常的。

为什么会这样?我该如何解决?

tnx,抱歉我的英语。

在viewDidAppear中:

// fetchData FROM CORE DATA Tasks //
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityTasks = [NSEntityDescription entityForName:@"Device" inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entityTasks];

NSError *errorTasks = nil;
fetchedObjectsTasks = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&errorTasks];
if (fetchedObjectsTasks == nil) {
    NSLog(@"Problem with fetch! %@",errorTasks);
}

numberOfIssues = [NSMutableArray arrayWithObjects:[NSString stringWithFormat:@"%lu",(unsigned long)fetchedObjectsTasks.count],nil];

在TableCell中:

numberOfIssueLabelView.frame = CGRectMake(224, 11, 20, 21);
numberOfIssueLabelView = [[UILabel alloc] initWithFrame:numberOfIssueLabelView.frame];
numberOfIssueLabelView.text = [numberOfIssues objectAtIndex:(indexPath.row)];
numberOfIssueLabelView.font = [UIFont systemFontOfSize:15.0f];
numberOfIssueLabelView.textColor = [UIColor whiteColor];
[cell addSubview:self.numberOfIssueLabelView];

return cell;

当你没有添加或删除任务时,我认为VC1需要刷新一些。

2 个答案:

答案 0 :(得分:1)

使用NSNotificationCenter向VC1发送通知以更新号码,或者创建协议VC2Delegate并让VC1将自己设置为VC2的委托,因此VC2可以在必要时联系其代表更新计数

另外,请确保您没有实例化多个标签,而只是实例化一个标签并在必要时进行更新。

答案 1 :(得分:0)

使用fetchedResultsController管理tableView。这样,任何更新都会在UITableView中正确反映出来。请参阅上面的评论,重新展示展示此功能的应用。