0

私のユニバーサル iOS アプリケーションでは、plist ファイルに保存されるフォルダー構造を作成します。次のように構築されます。

  • [配列]ルート
    • [辞書] 項目 0
      • [文字列] タイトル
      • [配列] 子
        • [辞書] 項目 0
        • [辞書] 項目 1
    • [辞書] 項目 1
      • [文字列] タイトル
      • [配列] 子
        • [辞書] 項目 0
        • [辞書] 項目 1
        • [辞書] 項目 2
        • [辞書]項目3
    • [辞書] 項目 2
      • [文字列] タイトル
      • [配列] 子

この構造で、フォルダーをナビゲートします。現在のデータ ソース (常に配列) の内容がテーブル ビューに表示されます。現在、一部のデータが変更されている可能性があります。したがって、テーブル構造と入力するデータを更新したいと思います。これをルート フォルダーで行う場合は問題ありませんが、サブフォルダーのいずれかで試してみると、現在の配列のみを更新できます。したがって、構造の上位レベルに戻ると、古いデータが使用されます。

すべてのデータを更新するが、現在選択されているフォルダーにとどまるにはどうすればよいですか (まだ存在する場合のみ)。

前もって感謝します

4

3 に答える 3

1

1、次のようにplistを更新するためのクラスメソッドがあります:[MyMethod updatePlist];

2、viewWillAppearまたはviewDidAppearメソッドを持つ親View Controllerがあります。そこで、[MyMethod updatePlist] を呼び出します。

3、すべてのviewControllerは親View Controllerを継承します。

そのため、新しいView Controllerビューをロードするたびに、常にplistが更新されました. 必要に応じて、読み込みを表示する処理を追加できます。

それは役に立ちますか?

于 2012-11-29T15:58:40.113 に答える
1

どのようにサブフォルダに移動しましたか? UINavigationController を使用する場合は、ユーザーが戻ったときにテーブルビューをリロードする必要があります。たとえば、viewWillAppear でこれを行うことができます

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

通知を使用できるため、各View Controllerは更新通知をリッスンし、データが変更されたときに通知を投稿します。

viewWillAppear:各View Controllerのメソッドでテーブルデータをリロードするだけです。

于 2012-11-29T15:46:52.320 に答える