Controlador Tabbar com orientação de controladores de navegação ios 6
Eu estou atualmente trabalhando em um projeto onde temos um controlador de barra de abas com 4 abas, e onde cada aba tem um controlador de navegação. Em cada um desses controladores de navegação, há vários viewcontrollers pressionados.
Eu li muito post aqui e em outros lugares, e atualmente fizemos o seguinte:
UITabbarcontroller subclassado
- (BOOL)shouldAutorotate
{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotate];
}
- (NSUInteger) supportedInterfaceOrientations
{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController]supportedInterfaceOrientations];
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation];
}
Este trabalho funciona bem, se em cada um dos nossos controladores de visualização especificarmos o seguinte:
- (NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}
Isso irá bloqueá-lo para retrato conforme o esperado.
Mas agora o problema real ocorre! Se no nosso viewcontroller em uma das abas especificarmos que ele deve rodar para paisagem funciona bem, mas quando a gente muda de aba ainda está na paisagem, o que não é o que a gente quer!
Então, para resumir, alguém tem uma solução para como você bloqueia quase todas as visões de uma determinada orientação, e pode mudar as abas onde elas estão na orientação que você especificou (aqui retrato)?
Eu também li este postiOS 6 UITabBarController suportou orientação com o controlador UINavigation atual, mas como um comentário também mencionou "Isso está quase funcionando para mim. O problema é se eu já estou na paisagem quando eu alterno as guias para um retrato só vejo que ainda está na paisagem. Girando retrato corrige e não vai girar de volta para paisagem, mas eu ainda preciso estar em retrato quando carrega pela primeira vez "que quase é o mesmo aqui ..