Abra uma vista em UITabBarController
-
03-07-2019 - |
Pergunta
Eu preciso abrir programaticamente um certo guia no meu bar guia.
Eu tentei ligar o seguinte método de minha UITabBarController:
self.selectedViewController = myVController;
que não funciona.
O que é o caminho certo para abrir uma aba?
Obrigado.
Update: Eu tentei o seguinte código:
self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];
que me abre uma aba desejável (ele está sendo selecionado), mas a vista ativa não está sendo atualizado.
Solução
Com relação à propriedade selectedIndex
, docs da Apple dizem:
Em versões do iPhone OS antes versão 3.0, esta propriedade reflete o índice do item da barra de guia seleccionado só. A tentativa de definir este valor para um índice de um controlador de visualização, que é não visível na barra de abas, mas é em vez gerido pela Mais de navegação controlador, não tem efeito.
Talvez este era o seu problema?
Uma possível solução é usar o seu próprio UITabBar
e lidar com seus próprios pontos de vista. Então você pode fazer algo como isto:
[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];
Apenas implementar UITabBarDelegate
e definir esta função para obter mensagens de seleção de item e mudar manualmente pontos de vista. (Embora se você estiver usando UITabBarController
recursos avançados, pode não valer a pena o esforço.)
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
}
Outras dicas
A maneira que eu tenho feito é usar self.tabBarController.selectedIndex = 1
(primeira guia é no índice 0).