0

在我的通用 iOS 应用程序中,我创建了一个保存在 plist 文件中的文件夹结构。它是这样构建的:

  • [数组] 根
    • [字典] 项目 0
      • [字符串] 标题
      • [数组] 孩子
        • [字典] 项目 0
        • [字典] 第 1 项
    • [字典] 第 1 项
      • [字符串] 标题
      • [数组] 孩子
        • [字典] 项目 0
        • [字典] 第 1 项
        • [字典] 第 2 项
        • [字典] 第 3 项
    • [字典] 第 2 项
      • [字符串] 标题
      • [数组] 孩子

使用这种结构,我浏览文件夹。当前数据源(总是一个数组)的内容显示在表格视图中。现在可能是某些数据发生了变化。因此,我想刷新我的表结构和要填充的数据。如果在根文件夹中完成,则没有问题,但如果我在任何子文件夹中尝试,我只能刷新当前数组。因此,如果我导航回结构的上层,仍然使用旧数据。

什么是更新我的所有数据的好习惯,但仍保留在当前选定的文件夹中(仅当它仍然存在时)?

提前致谢

4

3 回答 3

1

你是如何导航到子文件夹的?如果你使用 UINavigationController,你应该在用户导航回来时重新加载你的 tableview。例如,您可以在 viewWillAppear 中执行此操作

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    // Reload data in table view
    [self.tableView reloadData];
}
于 2012-11-29T15:17:26.197 回答
1

您可以使用通知,因此每个视图控制器都会监听更新通知,并在您的数据更改时发布通知。

您可以简单地在每个视图控制器的viewWillAppear:方法中重新加载表数据。

于 2012-11-29T15:46:52.320 回答
1

1,您有一个用于更新 plist 的类方法,如下所示:[MyMethod updatePlist];

2,您有一个具有 viewWillAppear 或 viewDidAppear 方法的父视图控制器。在那里,您调用 [MyMethod updatePlist]。

3、你所有的viewController都继承父视图控制器。

所以每次加载新的视图控制器视图时,它总是更新 plist。如有必要,您可以添加处理内容以显示加载。

这有帮助吗?

于 2012-11-29T15:58:40.113 回答