Por que meu uitabbarcontroller está vazio?
-
22-09-2019 - |
Pergunta
Eu criei um uitabbarcontroller como este:
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 = controladores; [liberação do TBC];
Problema: vejo uma barra de guia preta na parte inferior e uma área de conteúdo branco. O primeiro controlador de exibição na matriz tem uma cor vermelha de fundo. Portanto, deve parecer vermelho.
A barra da guia não mostra itens, está vazia.
Qual pode ser o problema? Não uso arquivos NIB ... sem avisos, sem erros, nada registrado no console. Apenas barra de guia vazia.
Solução
Você não está perdendo:
self.tabBarController.viewControllers = controllers;
EDITAR:
Bem, além disso, não vejo nada no código incluído que está errado, então isso me leva a pensar que algo mais deve estar errado. Algumas opções:
- Tem certeza que o self.tabbarcontroller aponta para qualquer coisa (não é nulo)?
- Tem certeza de que está apontando para o mesmo uitabcontroller que você está vendo?
Tem certeza de que os controladores que você está criando são criados corretamente? Tente exibi -los independentemente do tabbar com
self.tabbarcontroller PresenteModalViewController: IVC Animated: Sim];
O UitabController é criado a partir de uma ponta? Se for colocado um NSLog no initWithnibName ou AwakeFromnib para garantir que seja chamado antes do seu código e não seja chamado novamente após o seu código.
Comece com isso, se ninguém mostrar alguma indicação de que algo mais está errado, posso pensar em mais algumas coisas para tentar.