0

空の単純な tableviewController。ボタンから起動できるモーダル。テーブルビューのデータ ソースにデータがなく、行も表示されません。

モーダルを開き、それを使用してアイテムを追加し、tableview コントローラーに戻ります。テーブルビューは自動的に更新され、新しい行が表示されます。

2 つ目の項目を追加します。テーブル ビューは自動的に更新されません。

numberOfSectionsInTableView 内にログを記録することで、最初の項目を追加してキャンセルしても、テーブルビューが更新されることがわかります - 表示するセクション、行、およびセルの数 (存在する場合) を要求します。ただし、テーブルに既存の行が 1 つある場合はそうではありません。

私は自分のコードを精査しましたが、テーブルビューが最初のアイテムがいつ追加されたかを知る原因となるものは何も見つかりませんが、その後は何も見つかりません。

何か案は?

編集 - 問題をさらに絞り込んだので、これをすぐに閉じて、より具体的な質問を投稿しまし

4

1 に答える 1

1

Appleのドキュメントから:

UITableViewは、UIViewのlayoutSubviewsメソッドをオーバーライドして、UITableViewの新しいインスタンスを作成するとき、または新しいデータソースを割り当てるときにのみreloadDataを呼び出すようにします。

多分あなたはそのモーダルを示した後にテーブルビューのデータソースを設定していますか?したがって、2回目はデータソースは変更されず、tableViewは更新されません。

もう1つの重要な点(それについてはよくわかりません)は、モーダルを初めて表示することかもしれません。モーダルのメソッド-addSubviewは、-layoutSubviewsを引き起こしています。

于 2012-09-06T21:41:18.697 に答える