0

UITableView を含む UIViewController に対して viewDidAppear メソッドが呼び出されないという問題に遭遇しました。実際、tableView データソース メソッドは、viewWillAppear の直後に呼び出されていました。これの理由は、tableViewデリゲートとデータソースがviewDidLoadメソッドで設定されていたためであることがわかりました(tableView reloaddata:が呼び出されていませんでした)。これら 2 行のコードを viewDidAppear メソッドに移動し (さらに tableView reloaddata: を追加)、すべてが正常に機能しました。通常は viewDidLoad メソッドでビュー デリゲートを設定するので、少し混乱しています。

誰もこれを見たことがありますか?それはより大きな問題の兆候ですか?また、デリゲートとデータソースを設定するための一般的なベスト プラクティスはありますか?

任意の洞察をいただければ幸いです。ありがとう!

4

1 に答える 1

2

UIViewController のビューが表示されようとしているときに、viewWillAppear メソッドが呼び出されます。viewDidAppear メソッドは、UIViewController のビューが表示された後に呼び出されます。

これらのメソッドは両方とも、viewController がビューを表示しようとするたびに呼び出されます (つまり、初めて、または他の viewController によって明らかにされたとき)。

したがって、一般的にはデリゲートを viewDidLoad メソッドに設定する必要があります。

あなたが観察している行動は絶対に問題ありません。大きな問題のような症状はありません。

于 2013-03-06T15:57:31.377 に答える