0
 - (void)viewWillAppear:(BOOL)animated
 {


goals = [[NSArray alloc] init];
goals = [[self.operation valueForKeyPath:@"goal.goalNaam"] allObjects]  ;


[self.tableView reloadData];

上記のコードでわかるように、viewwillappear にテーブルビューの要素をロードしています。ユーザーがテーブルに何かを追加すると (追加は別のビューで行われます)、それは Core Data に追加され、テーブルビューが再び表示されたときに ("add-an-element-view" が閉じられた後)、配列が読み込まれます。テーブルから何かを削除したい。しかし、問題は、同じビュー (テーブルビュー) にとどまっているため、配列がリロードされていないことです (viewwillappear が実行されないため)。これを解決する方法を知っている人はいますか?

4

3 に答える 3

0

NSFetchedResultsControllerDelegateを確認してください。VC をフェッチ結果デリゲートとして設定し、データ構造が変更されたときに通知を受け取ることができます。

于 2012-08-17T19:19:10.877 に答える
0

にデータをロードしますcellForRowAtIndexPath。これは、セルが表示されるときに呼び出され、表示されている (またはほとんど表示されている) セルのみが読み込まれます。

何かを強制的に再ロードするには、reloadRowsAtIndexPathsまたは他のreload...方法のいずれかを使用します。

于 2012-08-17T18:37:23.737 に答える
0

「[self viewWillAppear:YES];」を呼び出すことができます。コアデータからデータを削除した後、データは同じビュー(テーブルビュー)からリロードされます

于 2012-08-17T18:30:10.993 に答える