2014-12-09 6 views
0

Мое приложение было первоначально создано для iPad, в разделе Ландшафтная ориентация. Теперь я должен сделать его совместимым с iPhone.Вопрос с ориентацией на универсальность

Converting Storyboard from iPhone to iPad Я следил за этой темой, чтобы скопировать мою раскадровку и определить ее для iPhone. В настройках проекта я определил новую панель рассказов для iPhone в режиме портрета. В новом раскадровке я изменил каждый viewController на режим Portrait.

Когда я запускаю приложение на iPhone (симулятор или устройство) Он по-прежнему находится в ландшафтном режиме, но с изменениями (перемещенные поля, например), которые я сделал в новой раскадровке.

Я что-то забыл? Спасибо :)

enter image description here

+0

да ... как вы справляетесь с поворотом? программно? если да, вращайтесь только для iPad, а не для iPhone ... вы закончили .... –

+0

Я не обрабатываю вращающийся. Не нужно. Только альбомный режим на iPad и Portrait на iPhone. – Atomnium

+0

ОК .. тогда для раскадровки iphone, отметьте галочкой пейзаж или нет ... –

ответ

0

Это начало происходить с новым Xcode для универсальных проектов ... пойти в .plist файл для проекта, и вы увидите поле для ориентации для IPad (1 пункт) и ориентация для iPhone (4 элемента), разверните iphone one и удалите строки, содержащие ориентацию, которую вы не хотите. Сохраните, очистите и постройте.

+0

Я все еще делал все это. Я нашел решение, я отправлю ответ;) – Atomnium

0

Не искать больше, я нашел решение. В приложении у меня есть доступ к Camera Roll. На iPad, если я получаю доступ к нему в ландшафтном режиме, Camera Roll открывается в Portrait, и это уродливо и раздражает для пользователя. Тогда кто-Stack предложил использовать категорию UIViewController + OrientationFix.h

Вот код ...

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 


    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation); 
} 

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
     return UIInterfaceOrientationMaskLandscape; 
} 

мне пришлось изменить его

NSString *deviceType = [UIDevice currentDevice].model; 
     NSLog(@"Device Type : %@", deviceType); 
     if([deviceType hasPrefix:@"iPad"]) 
     { 
      return UIInterfaceOrientationMaskLandscape; 
     } 
     else 
      return UIInterfaceOrientationMaskAll; 

Странная вещь это, что Я не нашел его, выполнив поиск «пейзажа» во всех проектах, даже игнорируя случай.

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