Ocultar um UITabBar quando a mudança Orientação
-
10-07-2019 - |
Pergunta
Eu tenho uma pergunta muito simples, mas a resposta não é tão fácil.
Eu quero esconder um UITabBar quando a minha mudança de orientação.
Eu olhei 2 maneiras:
modo Quadro
myAppDelegate.tabBarController.tabBar.frame = CGRectMake(<<bottomOfScreen>>);
funciona bem, mas eu tenho uma área em branco, então tentei jogar com tabBarController.view.frame et myViewController.view.frame mas eu não obter qualquer resultado bom.
Controlador de navegação Way
myOtherVC.hideTabBarWhenPushed = YES;
[self.navigationController pushViewController:myOtherVC animated:NO];
Funciona, mas não é uma solução boa para meu aplicativo
Update:
[appDelegate.tabBarController.view removeFromSuperview];
[self.view removeFromSuperview]; [appDelegate.window addSubview:self.view];
self.view.frame = CGRectMake(0,0,480,320);
funciona bem, mas não autorotate mais (e, claro, eu não mudar o shouldAutorotate e ele sempre retorna YES)
Como posso Hidde minha barra de páginas e fazer a visão atual tomando seu espaço?
Graças
Solução
Você pode usar a solução atual combinada com:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
para detectar rotação. (Eu acho que você combinar isso com view.transform = CGAffineTransformMakeRotation para fazê-lo girar ...?)
Outras dicas
Duas maneiras Eu acho que você pode facilmente fazer isso seria:
- para recarregar os objetos de volta para o controlador de TabBar - com o conjunto hidesBottomBarWhenPushed para SIM para os viewControllers você quer ser escondido.
- A outra opção seria a de simplesmente fazer a sua visão a única visão para a janela quando o telefone é girado e em seguida, colocar a parte de trás tabBarController.view na janela quando o telefone está de volta rodado
Espero que isso ajude