Estou tentando descobrir como ocultar a barra de guias no meu aplicativo iOS swift. Não me importo com animações extravagantes nem nada. Apenas algo que posso colocar na função ViewDidLoad ().
Dharmesh, obrigado pela resposta. Isso oculta com sucesso a barra de guias, mas a visualização da tabela não preenche a tela. É apenas preto onde deveria estar a barra de guias. Acho que há outra etapa para fazê-lo caber na tela?
Robert
3
Adicione restrições para isso.
Dharmesh Kheni
2
Quais são as "restrições" a serem adicionadas?
db0
Se você usou restrições, pode alterar a restrição de altura para isso ou pode alterar o quadro de tableView. @ db0
Dharmesh Kheni
5
Mas a barra de guias ainda suportaria o toque, tente tocar perto de qualquer guia da barra de guias invisível. @DharmeshKheni
C
138
A resposta aceita funciona, mas a transição para outra visualização tem uma animação instável (a guia Barra de animação)
Também queria adicionar, embora a solução de Kalpesh funcionasse perfeitamente para mim, descobri que todo controlador de visualização tem um atributo para hidesBottomBarWhenPushed (confira o storyboard.) Se você deseja ocultar a barra de guias, deve marcar isso. E funcionaria muito bem.
Atualização: não tenho certeza se isso é uma coisa conhecida, mas aqui está o que a página de documentação da apple diz:
Acho que isso significa que você deve definir o valor básico de hidesBottomBarWhenPushed no controlador de exibição superior (o primeiro na pilha de navegação). Depois de definir isso como verdadeiro, você pode alterar para falso ou verdadeiro para os outros controladores de exibição no pilha. Mas, se o valor hidesBottomBarWhenPushed de seu controlador de visualização superior for false, ele não mostrará uma barra de guias para outros controladores na pilha de navegação.
isso é o que devemos fazer. Muito melhor do que outras respostas se você quiser apenas escondê-lo enquanto apresenta o ViewController
Gabriel Goncalves
por que isso não funciona no Swift 4 ?? Já marquei a opção, mas ela ainda aparece quando vou para aquele controlador de visualização específico
ken
Isso também oculta a barra de guias para quaisquer controladores de visualização que sejam adicionados à pilha depois disso. Existe uma maneira de trazê-lo de volta para os controladores de visualização subsequentes?
Justin Vallely
@JustinVallely Por favor, deixe-me saber se a atualização funciona na resposta
Akshansh Thakur
1
Obrigado, a resposta aceita teve um problema para mim, quando voltei para a vista de onde estava vindo, o Tabbar para aquela também sumiu!
Abed Naseri
79
Antes de push set controller.hidesBottomBarWhenPushed = true
let objCreateEventVC =CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed =trueself.navigationController?.pushViewController(objCreateEventVC, animated:false)
Não há necessidade de definir a propriedade isHidden de tabBar.
Simplesmente, vá para ViewController (no StoryBoard) -> Inspetor de atributos -> Na seção 'View Controller' selecione a caixa de seleção 'Hide Bottom Bar on Push'. Isso funciona como um encanto.
Se você seguir o caminho 'isHidden', precisará fazer um monte de manuseio, ou seja, fazer com que apareça novamente quando você voltar e também remover o espaço vazio inferior depois de esconder a tabBar.
@NicoS. Verdade. Onde na pergunta / resposta você lê algo sobre uma barra de ferramentas?
J. Doe,
Da documentação: Um valor booleano que indica se a barra de ferramentas na parte inferior da tela está oculta quando o controlador de visualização é colocado em um controlador de navegação.
Nico S.
1
A questão é sobre o TabBar, não o ToolBar
Nico S.
@NicoS. é a mesma coisa nessa situação ... rs. É claro que você nem se preocupou em experimentar.
J. Doe,
1
o primeiro não funciona, o segundo deve ser adicionado ao executar uma segue ou antes de empurrar o controlador de visualização.
Gal Shahar
1
Para ocultar a NavigationBar e a tabBar, uso a próxima função:
var tabBarHeight :CGFloat!func fullScreenAction(){if navigationController?.isNavigationBarHidden ??false{//Show navigationBar
navigationController?.setNavigationBarHidden(false, animated:false)//Show tabBar
tabBarController?.tabBar.isHidden =false//Update the height of tabBar
if(!(tabBarController?.tabBar.frame.size.height.isEqual(to:0))!){
tabBarHeight =self.tabBarController?.tabBar.frame.size.height
}
tabBarController?.tabBar.frame.size.height = tabBarHeight
}else{//Hide navigationBar
navigationController?.setNavigationBarHidden(true, animated:false)//Hide tabBar
tabBarController?.tabBar.isHidden =true//Update the height of tabBar
tabBarHeight = tabBarController?.tabBar.frame.size.height
tabBarController?.tabBar.frame.size.height =0}}
Quando a orientação da tela mudou, a altura da barra de tabulação também mudou, então eu uso a próxima função para sair da tela inteira e redimensionar a altura:
vc.hidesBottomBarWhenPushed = true
deve fazer o trabalho. NÃO mostre nem oculte manualmente a barra de guias.Respostas:
Você pode simplesmente usar isso em seu
ViewDidLoad()
método.Para Swift 3.0, 4.0, 5.0 :
Ou você pode alterar a posição z da barra de guias desta forma:
e se você quiser mostrá-lo novamente:
fonte
A resposta aceita funciona, mas a transição para outra visualização tem uma animação instável (a guia Barra de animação)
Também queria adicionar, embora a solução de Kalpesh funcionasse perfeitamente para mim, descobri que todo controlador de visualização tem um atributo para hidesBottomBarWhenPushed (confira o storyboard.) Se você deseja ocultar a barra de guias, deve marcar isso. E funcionaria muito bem.
Atualização: não tenho certeza se isso é uma coisa conhecida, mas aqui está o que a página de documentação da apple diz:
Acho que isso significa que você deve definir o valor básico de hidesBottomBarWhenPushed no controlador de exibição superior (o primeiro na pilha de navegação). Depois de definir isso como verdadeiro, você pode alterar para falso ou verdadeiro para os outros controladores de exibição no pilha. Mas, se o valor hidesBottomBarWhenPushed de seu controlador de visualização superior for false, ele não mostrará uma barra de guias para outros controladores na pilha de navegação.
fonte
fonte
Não há necessidade de definir a propriedade isHidden de tabBar.
Simplesmente, vá para ViewController (no StoryBoard) -> Inspetor de atributos -> Na seção 'View Controller' selecione a caixa de seleção 'Hide Bottom Bar on Push'. Isso funciona como um encanto.
Se você seguir o caminho 'isHidden', precisará fazer um monte de manuseio, ou seja, fazer com que apareça novamente quando você voltar e também remover o espaço vazio inferior depois de esconder a tabBar.
fonte
Hide Bottom Bar on Push
tem uma animação desagradável, imo.Swift 3.
fonte
Você também pode configurá-lo na extensão (use a resposta Dharmesh Kheni)
fonte
Esta é a maneira programática para Swift 4.0, 4.1, 4.2, 5.0 e posterior >:
ou
fonte
Para ocultar a NavigationBar e a tabBar, uso a próxima função:
Quando a orientação da tela mudou, a altura da barra de tabulação também mudou, então eu uso a próxima função para sair da tela inteira e redimensionar a altura:
Espero que seja útil para você.
fonte