pushViewController: - как отображать в портретном режиме, когда устройство находится в ландшафтном режиме? - PullRequest
1 голос
/ 16 февраля 2011

У меня есть 2 вида контроллеров, root и detail. Контроллер корневого представления поддерживает альбомную и книжную ориентацию, поэтому он имеет следующий код:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
        return (interfaceOrientation == UIInterfaceOrientationPortrait
        || interfaceOrientation == UIInterfaceOrientationLandscapeLeft
        || interfaceOrientation == UIInterfaceOrientationLandscapeRight
        || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
    }

Приведенный выше код прекрасно работает для контроллера корневого представления.

Если отображается контроллер корневого представления и пользователь переводит устройство в альбомный режим, представление корректируется соответствующим образом. С этого момента, если поместить мой детализированный контроллер в стек, он загружается в альбомном режиме. Но это не должно происходить, потому что я настроил поддержку только портретного режима. Я использую код ниже в моем детальном контроллере вида:

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

1 Ответ

0 голосов
/ 16 февраля 2011

В вашем втором контроллере представления замените ваш код на ...

return UIInterfaceOrientationIsPortrait( interfaceOrientation );
...