これは、説明するのが少し難しい質問です。これに対する答えを 2 週間以上探していましたが、このユース ケースの解決策を見つけることができませんでした。
核心的な詳細に入る前に、この画像を見てください。
ユーザーには、最初にメイン リストビューが表示されます。このビューに表示されるデータ (患者の記録) は、API から取得されます。ここで注意すべき重要な点の 1 つは、現在の日付のデータのみが取得されるということです。データベースには過去の日数と今後の日数のレコードがありますが、デフォルトではデータは現在の日付です。API を呼び出してデータを取得したら、それらからオブジェクトを作成し、それらのオブジェクトを Core Data に格納します。次に、コア データ モデルからそれらを取得し、テーブル ビューに表示します。
メイン リストの各患者レコードは、実際には小さなレコードのグループです。ユーザーがレコードをタップすると、サブ リストが表示され、すべての小さなレコードの詳細を確認できます。彼は、これらの小さな記録項目を編集、削除することもできます。
ここで助けが必要です。ユーザーがサブ リストにいる間、そのビュー内から日付を変更できます。そして、新しく選択された日付の小さなレコードの詳細が表示されます。これは、API を再度呼び出し、選択した日付をパラメーターとして送信し、その日付のデータを取得してサブ リスト ビューに表示することを意味します。
しかし、この日付変更操作全体がメイン リストのデータに影響を与えることはありません。つまり、サブ リスト内で日付が変更されても、メイン リストの現在の日付のデータは変更されません。ユーザーが [戻る] ボタンをタップしてメイン リストに移動した場合、古い現在の日付のデータは、ユーザーがそこを離れたときにすぐに利用できるようにする必要があり、サブ リスト ビューの新しいデータは、そのビューを離れると破棄されます。
もう 1 つのことは、新しいデータは一時的なものですが、ユーザーはそれらのレコードを編集できる必要があるということです。単なる表示用ではありません。そのため、それらをコア データに追加する必要があります。
私の質問は、サブ リスト内の新しい日付のデータを取得したら、元のデータ セットに影響を与えずにそのデータを一時的に保持する方法はありますか?
助けていただければ幸いです。
ありがとうございました。