[self presentModalViewController: контроллер анимирован: ДА]; Ведет себя странно - PullRequest
0 голосов
/ 10 марта 2011

У меня есть универсальное приложение, которое поддерживает все ориентации в iPad и только портрет в iPhone / iPod. Мой код выглядит примерно так:

@implementation UIViewController ( interfaceOrientationHack )
  - (void) shouldAutorotateToInterfaceOrientation: ( UIInterfaceOrientation ) toInterfaceOrientation {
    if( iPad ) {
      return YES;
    } else if( toInterfaceOrientation == UIInterfaceOrientationPotrait ) { 
      return YES;
    } else return NO;
  }
@end

С одного из моих контроллеров я запускаю контроллер навигации как контроллер модального вида

[ self presentModalViewController: c animated: YES ];

В настоящее время проблема заключается в том, что модальный контроллер запускается правильно в ориентации, но когда я меняю свою ориентацию, модальный контроллер не меняет свою ориентацию, все остальные контроллеры работают правильно.

Любая помощь будет высоко оценена. Заранее спасибо.

1 Ответ

0 голосов
/ 10 марта 2011

Из ссылки на класс UIViewcontroller: «По умолчанию класс UIViewController отображает представления только в портретном режиме. Чтобы поддерживать дополнительные ориентации, вы должны переопределить shouldAutorotateToInterfaceOrientation: метод и возвращать YES для любых ориентаций, поддерживаемых вашим подклассом. Если свойства вашего размера изменяются автоматически.представления настроены правильно, это может быть все, что вам нужно сделать. "

Поскольку ваше модальное представление наследуется от UIViewcontroller, вы должны переопределить mustAutorotateToInterfaceOrientation: в вашем модальном представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...