0

バックグラウンド:

  1. viewDidLoad 内で、テスト カレンダー データを (EventKit 経由で) iPhone にロードしています。テーブルビューが初めて読み込まれるときに、このデータが表示されないことに注意してください。

  2. ログメッセージのシーケンスを見ると、次のようになっていることがわかります。

ここに記録:

[AppointmentListController viewDidLoad] Starting
[AppointmentListController populateTestData] Populating the test data now
[AppointmentListController tableView:numberOfRowsInSection:] Number of rows = 0
[AppointmentListController viewDidLoad] Loading the existing calendar events
[AppointmentListController viewDidLoad] Ending

質問

  • 「viewDidLoad」の途中で「numberOrRowsInSection」が呼び出されるのはなぜですか? これが私が見ているものなので、私はこれを尋ねます(これは何が起こるべきですか?)。

  • numberOrRowsInSection の前に viewDidLoad が完了すると確信できないのが通常の場合、これは、「viewDidLoad」メソッドの最後に「[self.tableView reloadData]」が必要であることを意味します。

4

2 に答える 2

3

このtableView:numberOfRowsInSection:メソッドは、テーブル ビューで何かを構成したために呼び出された可能性が高く (スーパービューに追加した可能性があります)、そのメトリックを知る必要がありました。それ自体が魔法のように突然トリガーすることはありません。UI要素を構成する前にデータを準備するかreloadData、最後に呼び出すようにしてください。ただし、前者の方が「クリーン」であることがわかります。

于 2011-03-19T08:43:28.823 に答える
0

これは完全に正常です....

Call [self.tableView reloadData]

; viewdidload の最後に

于 2011-03-19T09:24:31.507 に答える