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

Foi útil?

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:

  1. para recarregar os objetos de volta para o controlador de TabBar - com o conjunto hidesBottomBarWhenPushed para SIM para os viewControllers você quer ser escondido.
  2. 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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top