UITabBarControllerに5つのUINavigationControllerのセットがあります。問題は、一部のUINavigationControllerのみがそれぞれのUITableViewControllerでviewWillAppear:を呼び出していることです。
私の現在の設定は次のとおりです:(すべてがプログラムで作成されます)
|
tabBarController
(UITabBarController)
|
---------------------------------------- ...etc...
| |
tempNavController tempNavController <--- Secondary NavContr
(UINavigationController) (UINavigationController) Not subclassed
| |
scheduleViewController currentViewController
(UITableViewController) (UITableViewController)
| |
...more UITableViewControllers...
一部のUITableViewControllerのみがviewWillAppearとviewDidAppearを呼び出しており、呼び出しているUITableViewControllerは、ビューが表示される方法ごとに呼び出していません。ビューにプッシュしたときにのみ呼び出すもの、ビューにポップしたときにのみ呼び出すもの、タブをビューに切り替えたときにのみ呼び出すものがあります。
問題が一部のUITableViewControllerにのみ表示され、すべてでは表示されない原因は何でしょうか。そして、なぜビューが表示されるいくつかの方法でのみですか?すべてのタブとテーブルは同じ方法で設定されます。
編集:タブを設定するために使用するコードは次のとおりです。
- (void)viewDidLoad
{
//Setup of two of the tabs
//Create navigation controller and root view for each tab
//Current Comps
CurrentCompsViewController *tempCurrentCompsViewController = [[CurrentCompsViewController alloc] init];
[tempCurrentCompsViewController setAProgram:self.currentProgram];
self.currentCompsviewcontroller = [[UINavigationController alloc] initWithRootViewController:tempCurrentCompsViewController];
//Comp List
CompetitionListViewController *tempCompListViewController = [[CompetitionListViewController alloc] init];
[tempCompListViewController setAProgram:self.currentProgram];
self.competitionListViewController = [[UINavigationController alloc] initWithRootViewController:tempCompListViewController];
//Create and add tabBarItems
UITabBarItem *compListITem = [[UITabBarItem alloc] initWithTitle:@"Competitions" image:[UIImage imageNamed:@"CompsIcon.png"] tag:6];
[self.competitionListViewController setTabBarItem:compListITem];
UITabBarItem *curentItem = [[UITabBarItem alloc] initWithTitle:@"Current Comps." image:[UIImage imageNamed:@"CurrentIcon.png"] tag:7];
[self.currentCompsviewcontroller setTabBarItem:curentItem];
//Add everything to tab array, and sort tabs... etc...
}
タブビューでアイテムを選択することとは何の関係もありません。また、各タブのルートにあるナビゲーションコントローラーをサブクラス化しません。