iOS 6 UIInterfacePortrait ТОЛЬКО viewcontroller, представленный и застрявший в альбомной ориентации… при возврате из ландшафтного viewcontroller в стеке навигации

Так что, как и многие другие, я столкнулся с проблемой, когда один или два контроллера вида поддерживают как книжную, так и альбомную ориентации интерфейса, в противном случае - только портретное приложение. До iOS 6 все работало нормально, но внезапно перестало работать автозапуск. Благодаря нескольким замечательным вопросам, я смог решить эту проблему, заставив начальный navController возвращать предпочтение отдельного topViewController для shouldAutorotate через:

    - (BOOL)shouldAutorotate
{
    return  self.topViewController.shouldAutorotate;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

Однако я наткнулся на новую проблему. корневой vc (viewController A) не должен автоматически поворачиваться и должен поддерживать только портрет. ViewController B в стеке навигации поддерживает книжную и альбомную ориентацию. Если я нахожусь в viewController B и в альбомной ориентации, и коснитесь «назад», чтобы вернуть представление обратно в viewController A ... vc A загружает в альбомной ориентации, которую он даже не должен поддерживать, и не будет поворачиваться обратно в портретную, потому что shouldAutorotate для vc A имеет значение NO ...

Любые идеи о том, как справиться с этим будет принята с благодарностью. Моей первоначальной мыслью было переопределить кнопку «назад» vc B с помощью ручного метода, который сначала принудительно поворачивает обратно в портретное, если представление находится в альбомной ориентации ... затем возвращает контроллер вида назад в vc A ... но я не могу понять, как заставить вращение программно. Есть идеи?

Вот методы интерфейса в VC:

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

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationPortrait;
}

и вот что они есть в VC B:

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

-(BOOL)shouldAutorotate
{
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationPortrait;
}

Ответы на вопрос(2)

Ваш ответ на вопрос