iOS:更新子文件夹中的文件夹结构

时间:2012-11-29 15:11:07

标签: ios refresh directory subdirectory

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

  • [Array] Root
    • [字典]项目0
      • [String]标题
      • [数组]儿童
        • [字典]第0项
        • [字典]第1项
    • [字典]第1项
      • [String]标题
      • [数组]儿童
        • [字典]第0项
        • [字典]第1项
        • [字典]第2项
        • [字典]第3项
    • [字典]第2项
      • [String]标题
      • [数组]儿童

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

更新所有数据但仍保留在当前选定的文件夹中的优良做法(仅当它仍然存在时)?

提前致谢

3 个答案:

答案 0 :(得分:1)

你是如何导航到子文件夹的? 如果您使用UINavigationController,则应在用户导航时重新加载您的tableview。 例如,您可以在viewWillAppear

中执行此操作
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    // Reload data in table view
    [self.tableView reloadData];
}

答案 1 :(得分:1)

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

您只需在每个视图控制器的viewWillAppear:方法中重新加载表数据。

答案 2 :(得分:1)

1,你有一个用于更新plist的类方法:[MyMethod updatePlist];

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

3,所有viewController都继承父视图控制器。

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

这有用吗?