Deshabilitar la rotación para un elemento de UITabbar
Tengo un uitabbarcontroller con 4 elementos de barra de pestañas y cada elemento de la barra de pestañas tiene un controlador de navegación.
Necesitaba bloquear la orientación de un elemento de uitabbar solo a Vertical. Así que implementé el siguiente código:
Creó un controlador de barra de pestañas personalizado y agregó el siguiente código:
MainTabBarController.m
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// You do not need this method if you are not supporting earlier iOS Versions
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
-(NSUInteger)supportedInterfaceOrientations
{
if (self.selectedViewController)
return [self.selectedViewController supportedInterfaceOrientations];
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotate
{
return YES;
}
Creó un controlador de navegación personalizado para usar en uno de los uitabbaritems y agregó el siguiente código:
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
return YES;
}
y para el controlador uiview en el controlador de navegación personalizado, agregué el siguiente código:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
El código anterior funciona bien. Mi problema es que si va al elemento de la barra de pestañas (cuya orientación está bloqueada en Protrait) cuando el dispositivo ya está en modo horizontal, la orientación cambia a horizontal. ¿Alguien puede ayudarme a resolver mi problema?
Gracias Anand.