ここでいくつかの助けをいただければ幸いです。
画像 (緑、オレンジ、または赤) と異なるフォント サイズの 2 つのラベルで構成されるカスタム UITableView セルがあります。UITableView は、オブジェクトの NSMutableArray によって駆動されます。
UITableView は 3 つのセクションに分割されます。最初のセクションにはすべてのセルが含まれ、赤い画像が表示され、2 番目のセクションにはオレンジ色の画像が表示され、3 番目のセクションには緑色の画像が表示されます。
UITableView 内のセルを再配置する機能を実装しました。これにより、ユーザーは赤い画像のアイテムを赤いセクションからオレンジのセクションにドラッグできます。このドラッグはうまく機能し、基になるデータは正しく更新されます。セルを選択すると、その詳細ビューに移動し、データが更新されるため、これが事実であることはわかっています。
ただし、UITableView は、詳細に移動 (またはアプリを終了) して戻るまで更新されません! また、問題のあるセルをスクロールしてビューから外し、再びビューに戻すと更新されるため、配列には明らかに正しいデータが含まれています。ビューの更新をトリガーできません。
moveRowAtIndexPath の基になるデータを変更するためのコードの後に、次のことを試しました。
[self.tableView reloadData];
ただし、これにより例外が発生します。実際、Apple 言語リファレンスには、挿入、削除、またはアニメーション化するときに reloadData を呼び出すことはできないと書かれていますが、これはもちろん私が行っていることです。さらに、セルをリフレッシュしようとするだけです
[self setNeedsDisplay];
動作しません (クラッシュもしませんが)。
UITableView を更新する方法についてのアイデアはありますか? afterMoveHasBeenCompleted: メソッドなどが見つからないので、moveRowAtIndexPath: メソッドの実行中に reloadData を呼び出せない場合は、どこで呼び出せばよいのでしょうか?!