0

個々のセルだけでなく、基になるデータソースの構造が変更される可能性がある 1 つの画面に UITableView があります。

同じ UITableView でそれを実行してから reload を呼び出すと、テーブルの構造が変更されたというエラーが表示されます (行数、セクション数が異なるなど)。

これは私が得るエラーです:

*キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: '無効な更新: セクションの数が無効です。更新後のテーブル ビューに含まれるセクションの数 (1) は、更新前のテーブル ビューに含まれるセクションの数 (21) に、挿入または削除されたセクションの数 (0 挿入、0削除されました)」

すべてのセクションを削除してから新しいセクションを追加して、テーブルを本当に変更する必要がありますか?

したがって、基本的に私の質問は、これを正しく行う方法です。プログラムで新しい UITableView を作成し、最初のテーブルから rect、bkgnd カラー、デリゲート、およびデータソースを使用することもできますが、IB で設定したすべての制約は新しいテーブルに対して失われます。

これらすべての制約を古いテーブルから取得して、新しいテーブルに与えるにはどうすればよいですか?

新しいデータソースを設定しただけでも、上記のエラーが発生します。新しいデータソースで新しい UITableView を作成した場合にのみ、上記のエラーは発生しません。

または、すべての UI 属性と制約を変更せずに、まったく異なる基になるデータで UITableView をリセットする別の方法はありますか?

4

1 に答える 1

2

必要なことは、さまざまなデータ ソース メソッドが参照reloadDataし、テーブル ビューで呼び出す変数に新しいデータを割り当てることだけです。

つまり、 を呼び出した時点で、、 、などreloadDataの呼び出しはすべて、更新された同じデータを参照している必要があります。numberOfSectionsnumberOfRowsInSectioncellForRowAtIndexPath

于 2013-07-14T22:40:26.623 に答える