ビューがタブバーを介して表示されるたびに、viewDidAppearメソッドが呼び出されるようには見えません。私はこの問題について可能な限り検索しましたが、決定的な答えは実際には見つかりませんでした。
これに対する提案や回避策はありますか?
タブバーコントローラーで正しく機能するためviewWillAppearにviewDidAppearは、タブバーコントローラー自体を表示するときにこれらのメソッドを必ず呼び出す必要があります。つまり、プログラムで作成する場合は、UITabBarController必ずこれらのメソッドを呼び出してください。
UITabBarController *myTabBarController = [[UITabBarController alloc] init];
[myTabBarController setViewControllers:myViewControllerArray];
[myTabBarController viewWillAppear:NO];
[[self view] addSubview:[myTabBarController view]];
[myTabBarController viewDidAppear:NO];
タブバーコントローラーがNIBファイルで作成されている場合、これは適用されません。その場合、viewDidAppearメソッドが自動的に呼び出されない理由がわかりません。
私は個人的にこのviewWillAppear:(BOOL)animated方法を使用しています。