Desativar rotação para um item do UITabbar

Eu tenho um uitabbarcontroller com 4 itens da barra de guias e cada item da barra de guias tem um controlador de navegação.

Eu precisava bloquear a orientação de um item do uitabbar apenas para Portrait. Então eu implementei o seguinte código:

Criou um controlador de barra de guias personalizado e adicionou o seguinte 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;
}

Criou um controlador de navegação personalizado para usar em um dos uitabbaritems e adicionou o seguinte código:

-(NSUInteger)supportedInterfaceOrientations
{
    return [self.topViewController supportedInterfaceOrientations];
}

-(BOOL)shouldAutorotate
{
    return YES;
}

e para o uiviewcontroller no controlador de navegação personalizado, adicionei o seguinte código:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

O código acima funciona bem. Meu problema é que, se você for ao item da barra de guias (cuja orientação está bloqueada para Protrait) quando o dispositivo já estiver no modo Paisagem, a orientação mudará para Paisagem. Alguém pode me ajudar como resolver meu problema.

Obrigado, Anand.

questionAnswers(1)

yourAnswerToTheQuestion