Suporte ao aplicativo universal com orientação retrato no iPhone e paisagem + retrato no iPad

Preciso que meu aplicativo seja compatível no iPad e no iPhone. É ter um tabbarController como o rootViewController.

No iPad, preciso que ele esteja disponível no modo Paisagem e Retrato. No iPhone, porém, eu preciso que o rootView seja o próprio Portrait e eu tenho alguns viewsControllers, que estão sendo apresentados no tabbarController, que precisam estar disponíveis no modo paisagem e no Portrait (por exemplo, um viewController usado para reproduzir vídeos do Youtube). Portanto, estou bloqueando a rotação do tabbarController da seguinte forma (na subclasse UITabbarController).

# pragma mark - UIRotation Methods

- (BOOL)shouldAutorotate{
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
}

- (NSUInteger)supportedInterfaceOrientations{
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? UIInterfaceOrientationMaskAll : UIInterfaceOrientationMaskPortrait;
}

O que pretendo fazer é que, bloqueando a rotação do rootviewController (tabbarController), estou bloqueando todos os VCs no tabbarController (apenas no iPhone) e as visualizações apresentadas na parte superior do tabbarController possam girar conforme a orientação do dispositivo.

O PROBLEMA

Tudo funciona como esperado até que o aplicativo seja lançado na paisagem do iPhone. Quando iniciado no modo paisagem, o aplicativo é padronizado como paisagem e inicia o aplicativo no modo paisagem que não se destina. Ele deve ser iniciado no modo Retrato, mesmo que a orientação do dispositivo seja Paisagem. Como estou desativando a rotação automática para iPhone, o aplicativo continua em paisagem, resultando em um bug. Eu tentei esse método para forçar o aplicativo a iniciar em retrato no aplicativo: didFinishLaunchingWithOptions:

#pragma mark - Rotation Lock (iPhone)

- (void)configurePortraitOnlyIfDeviceIsiPhone{
    if ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone))
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
}

Ainda o problema persiste. Permiti todas as opções de orientação no info.plist para a chave SupportedInterfaceOrientaions, tanto para iPad quanto para iPhone, pois preciso que o aplicativo esteja no modo paisagem para o iPhone, mesmo que apenas em alguns viewControllers. O problema pode ser corrigido se, de alguma forma, forçar o aplicativo a ser iniciado na orientação Retrato, mesmo que a orientação do dispositivo seja Paisagem. Corrija-me se estiver errado na lógica; caso contrário, qualquer ajuda para iniciar o aplicativo no modo retrato será apreciada.

Eu já passeiesta pergunta aqui eaqui, mas não conseguiu fazê-lo funcionar ainda.

Obrigado

questionAnswers(1)

yourAnswerToTheQuestion