2010-01-26 2 views
0

Я создал UITabBarController так:Почему мой UITabBarController пуст?

InfoViewController *iVC = [[InfoViewController alloc] init]; 
self.infoViewController = iVC; // retain property 

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:0]; 
self.infoViewController.tabBarItem = tabBarItem; 





UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:myVC]; 
self.navigationController = nc; 

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:1]; 
self.navigationController.tabBarItem = tabBarItem; 






UITabBarController *tbc = [[UITabBarController alloc] init]; 

NSArray* controllers = [NSArray arrayWithObjects:self.infoViewController, self.navigationController, nil]; 

self.tabBarController = tbc; // retain property! 

self.tabBarController.viewControllers = контроллеры; [tbc release];

Проблема: я вижу черную панель вкладок внизу и область белого содержимого. Первый контроллер представления в массиве имеет красный цвет фона. Поэтому он должен выглядеть красным.

В панели вкладок нет предметов, он пуст.

В чем может быть проблема? Я не использую nib-файлы ... Никаких предупреждений, ошибок нет, ничего не записывается в консоль. Просто пустая панель вкладок.

ответ

1

Вы не хватает:

self.tabBarController.viewControllers = controllers; 

EDIT:

Ну кроме того, что я не вижу ничего в прилагаемом коде, который является то, что неправильно, так что это заставляет меня думать, что что-то иначе должно быть неправильно. Несколько вариантов:

  1. Вы уверены, что self.tabBarController указывает на что-либо (не ноль)?
  2. Вы уверены, что указали на тот же UITabController, что видите?
  3. Вы уверены, что создаваемые вами контроллеры созданы правильно? Попробуйте отобразить их независимо от tabBar с помощью

    [self.tabBarController presentModalViewController: iVC animated: YES];

  4. Является ли UITabController создан из NIB? Если он поместит NSLog в initWithNibName или awakeFromNib, чтобы убедиться, что он вызывается перед вашим кодом и не будет снова вызван после вашего кода.

Начните с них, если у вас нет никаких указаний на то, что что-то еще не так, я могу придумать еще несколько вещей, чтобы попробовать.

+0

Право, я забыл скопировать и вставить его сюда. Но это не причина. – openfrog

+0

см. Мой обновленный ответ –