2015-11-30 1 views
1

Я новичок в разработке IOS, и я пытаюсь написать приложение для развертывания на ipad. Частично, чтобы все было просто, макетно, и потому, что я считаю, что мои пользователи будут использовать приложение только в ландшафтном режиме, я хочу только разрешить пейзажные виды и полностью отключить портретные виды.Locking View Rotation to Landscape для всего приложения в ios 8.1

Я нашел много советов, осматривающих интернет для ответа. К сожалению, ничто из этого не сработало для меня. Лучший ответ, который я нашел, - просто перейти к цели в xcode, а в разделе «информация о развертывании» -> «Ориентация устройства» просто снимите флажок «Портрет» и «вверх дном». Это теоретически должно решить мою проблему, но, к сожалению, этого не происходит. Представление вращается так же, как в нормальном режиме.

Переход к вкладке «Информация» и настройке Ориентация начального интерфейса на «Пейзаж» (слева) делает приложение, по крайней мере, запущено в ландшафтном режиме, но оно не ограничивает его только в этом режиме.

Даже добавление

- (BOOL)shouldAutorotate { 
    return NO; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskLandscape; 
} 

в мой главный взгляд, кажется, не помогает ничего. Так что я несколько тупой. Должна быть какая-то настройка или что-то где-то, что еще разрешает портретные взгляды. Что может быть эта проблема?

+0

почистили вы свой проект с момента принятия такого изменения? Продукт -> Очистить в верхней строке меню. – Bek

+0

Да, я пробовал это. Не повезло –

ответ

1

Если вы посмотрите на свой файл AppName -Info.plist, должен быть ключ под названием «Поддерживаемые ориентации интерфейса».

Вы должны удалить любое из значений Portrait в этом словаре и убедитесь, что включены только значения ландшафта!

enter image description here

Edit: В случае вопрос-Аскер, их выпуск включал кусок кода в AppDelegate, которые изменили поддерживаемые ориентации приложения.

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 
    /* They had the following: 
    *  return UIInterfaceOrientationMaskAll; 
    * Which allowed the orientation to rotate to portrait 
    */ 

    // This fixed their issue: 
    return UIInterfaceOrientationMaskLandscape; 
} 

Надеюсь, это поможет!

+0

А, да, спасибо. Я сделал это как для поддерживаемых ориентаций интерфейса, так и для поддерживаемых ориентаций интерфейса (iPad), но, к сожалению, проблема по-прежнему сохраняется. Спасибо хоть! –

+0

Супер интересный. Я смотрю вокруг и не вижу ничего, что могло бы предложить возможность переопределить настройки .plist. Не могли бы вы попробовать добавить это в -didFinishLaunching? 'application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;' – benhameen

+0

Хорошо, я пробовал это, но я не думаю, что что-то случилось. Такая же старая вещь - она ​​начинается в ландшафтном режиме, но перейдет в портретный режим при повороте в этом направлении. Однако я поставил точку останова, и это определенно было поражено. –

0

Вы можете сделать это в закладке Общие в проекте

enter image description here

Смежные вопросы