ViewController имеет неправильную ориентацию после того, как выскочил только альбомный - PullRequest
3 голосов
/ 19 января 2010

В приложении на основе навигации LandscapeViewController поддерживает только альбомный режим (все остальные поддерживают оба режима). У меня также есть «экран загрузки», который советует пользователю повернуть телефон перед продолжением. Таким образом, я могу убедиться, что когда мой альбомный вид загружается, он находится в ландшафтном режиме.

Проблема возникает, когда я перевожу телефон в портретный режим, все еще показывая LandscapeVC. Я нажимаю кнопку Назад, чтобы перейти на один уровень вверх (к ВК, поддерживающему как альбомный, так и портретный режимы), но верхний уровень отображается в альбомном режиме, даже если телефон находится в портретном режиме. Я предполагаю, что это потому, что когда я вышел из этого вида, я был в портретном режиме, я повернул телефон, когда в другом режиме, поэтому этот вид не получил уведомление. Если я затем перейду к телефону в другой ландшафтный режим (скажем, ландшафт VC был загружен с правой стороны, поэтому я бы повернул верхний ВК из портретного режима в левый ландшафтный режим), он обновится.

У меня вопрос: как я могу уведомить это верхнее представление о том, что телефон был повернут, поэтому, когда пользователь поднимается после перевода телефона в портретный режим, верхнее представление отображается правильно?

Ответы [ 2 ]

1 голос
/ 03 октября 2010

Если вы вытаскиваете вложенное представление из стека и возвращаетесь к предыдущему представлению (в настоящее время оно находится в горизонтальной ориентации, вы хотите в портретной ориентации), вы можете попробовать отправить его в селектор setNeedsLayout.

0 голосов
/ 01 мая 2010

Пожалуйста, попробуйте это,

Это может вам помочь.

Всего наилучшего

- (BOOL) shouldAutorotateToInterfaceOrientation:UIInterfaceOrientation)interfaceOrientation {
    if (interfaceOrientation == UIInterfaceOrientationPortrait)
        return NO;
    if (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft )
        return YES; 
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...