Почему мой uitabbarcontroller пуст?
-
22-09-2019 - |
Вопрос
Я создал 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 = Controllers; [TBC Release];
Проблема: я вижу черную панель вкладки внизу и белую область содержания. Первый контроллер просмотра в массиве имеет цвет красный фон. Так что это должно казаться красным.
На панели вкладок нет элементов, это пусто.
В чем проблема? Я не использую файлы NIB ... никаких предупреждений, никаких ошибок, ничто не зарегистрировано в консоли. Просто пусто вкладка.
Решение
Тебе не хватает:
self.tabBarController.viewControllers = controllers;
РЕДАКТИРОВАТЬ:
Ну, кроме этого, я ничего не вижу в включенном коде, который не так, поэтому это заставляет меня думать, что что -то еще должно быть неправильным. Несколько вариантов:
- Вы уверены, что Self.TabbarController указывает на что -либо (не нулевой)?
- Вы уверены, что это указывает на тот же UitabController, который вы видите?
Вы уверены, что контроллеры, которые вы создаете, создаются правильно? Попробуйте отобразить их независимо от таббара с
self.tabbarcontroller presentmodalViewController: IVC Animated: Да];
Создан ли uitabcontroller из пети? Если он помещается в NSLOG на initWithNibName или AwakeFromnib, чтобы убедиться, что он вызван перед вашим кодом, и не вызывается снова после вашего кода.
Начните с них, если никто не показывает никаких признаков того, что что -то другое не так, я могу придумать еще несколько вещей, чтобы попробовать.