Разрешить Пейзаж и Портрет, но заставить приложение оставаться в Портрете - iOS

У меня есть приложение, которое предназначено для работы в портретном, и все хорошо. Однако я реализовал vAds Mobfox, которые требуют ландшафтного режима.

В настоящее время я получаю следующую ошибку при вызове vAD

2013-01-08 23:44:05.109 Tv - IOS[1422:907] mobfox video did load
2013-01-08 23:44:05.125 Tv - IOS[1422:907] *** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES'

Таким образом, я думаю, что исправление позволит учесть ландшафт в приложении.

Мне нужно, чтобы приложение работало в портретной ориентации, но допускается альбомная ориентация при вызове vAd

Итак, резюмируем:

Мне нужна книжная ориентация только при обычном просмотре приложения, а при просмотре mobFox vAd виден пейзаж / портрет.

2 ответа

Решение

Вернуть NO за shouldAutorotate:

-(BOOL)shouldAutorotate {
  return NO;
}

Или если это YES вам нужно вернуть supportedInterfaceOrientations (по крайней мере, один), здесь его единственный разрешающий портрет:

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

Хорошо, после сна мне удалось наконец решить проблему.

Решение: мне пришлось создать подкласс UINavigationController, переопределить методы автоповорота и разрешить все повороты в проекте> Target > итоговые настройки

- (BOOL)shouldAutorotate {
return NO;
}

- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
// pre-iOS 6 support 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
Другие вопросы по тегам