Разрешить Пейзаж и Портрет, но заставить приложение оставаться в Портрете - 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);
}