核心数据:在标签栏中切换标签时刷新桌面视图

时间:2011-07-29 06:10:17

标签: iphone core-data nsfetchedresultscontroller nspredicate

我正在使用标签栏+导航控制器原型应用程序的核心数据,其中包含一个实体:Event。

所以我有两个标签,过去和现在。我正在使用nsfetchedresultscontroller和nspredicate将数据过滤到各自的表视图中。

现在这里是我遇到问题的地方,当我创建一个新的日期时,它会像我期望的那样显示在当前表格视图中,但随着时间的推移,事件会在日期之后停留,并且永远不会移动到过去的表格视图。我能实现这一目标的唯一方法就是从头开始启动应用程序,从而查看背景视图。

我试图在视图中安装reloadData调用到表视图会出现。这不起作用。

当应用程序从后台启动时,我尝试使用[tableview reloadData]。但这也行不通。

我想不出别的什么,希望你们能帮忙。

[编辑]

我刚想出怎么做!我试着下载我认为我上传到github的示例代码,但看起来那里没有文件。我无法弄清楚如何在那里上传项目。

无论如何,要实现这一点的事情是在视图中确实出现的,只是放置在获取结果控制器中的整个获取请求中(没有获取结果控制器变量)与谓词。现在,如果你切换视图的那一刻,整个数据就会被更新和过滤!

希望这可以帮助其他人寻找解决此问题的方法。

1 个答案:

答案 0 :(得分:0)

嗯,如果您已经尝试重新加载数据,这些可能是其他问题:

  • 确保缓存与谓词一致。如果在表中 控制器你使用缓存,并在表中填充一些东西 像entityDate = myCalculatedDate那样谓词可能不同, 你需要先删除缓存。我想你可以尝试设置 cache:nil看看这是不是问题。
  • 用于更新表,尤其是新插入的行或移动的行 您需要实现获取的控制器的不同索引 代表
  • [编辑] 如果我记得很清楚,我不确定是否标准 viewWillAppear/dissappear的机制与Tab Bar一起工作, 可能有一些代表实现,但它只是一个 猜猜!

这是我能在不看代码的情况下猜到的。