2014-12-26 2 views
0

Я разрабатываю приложение, которое находится в портретном режиме. Но я хочу, чтобы один контроллер вида отображался как в ландшафтном, так и в портретном режимах.Автоматический поворот в iOS7 и iOS8

Я пробовал следующий код, но он не работает (не называется).

- (BOOL) shouldAutorotate 
{ 
    return NO; 
} 
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
+0

http://stackoverflow.com/questions/12775265/ios-6-shouldautorotate -и-не-бытие-попробовал это –

+0

@Dheeraj Singh, к сожалению, ни один из методов не назвал. –

+0

мы уже сделали то же самое для navigationController self.window.rootViewController = self.objNavigationController; –

ответ

0

Во-первых, необходимо установить в вашем PLIST все ориентации ваше приложение поддерживает, то это можно сделать на вкладке «Общие» в проекте в разделе «Информация по развертыванию», например: enter image description here

Затем, вы можете использовать метод supportedInterfaceOrientations,

Я предполагаю, что вы представляете контроллер представления модально, так просто заменить его на предлежащей ViewController, которые должны быть только в использовании портретной:

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

и в вашем представленном ViewController, который должен также поддерживает пейзаж, использование: (или любой другой ориентации маски вы хотели бы)

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

PS - есть различное поведение для ViewController, который представлен модально и для ViewController, которые толкают в стеке navigationController:

  • modalViewController будем называть его собственным supportedInterfaceOrientations, и будет поддерживать эти ориентации
  • pushedViewController будет называть его навигационным контроллером supportedInterfaceOrientations и будет поддерживать эту ориентацию.

Так что, если вы представляя ViewController модальны, вам необходимо изменить свой собственный supportedInterfaceOrientations, но если нажать эту ViewController, вам необходимо установить некоторую BOOL недвижимость в navigationController, поэтому он будет знать, какие ориентиры для опор , Я советую вам представить этот viewController модально, более естественно использовать modalViewController для разных ориентаций устройств.

P.S # 2: о shouldAutorotate: если она возвращает 'НЕТ', чем supportedInterfaceOrientations не называется, так вернуть 'YES'. Он говорит только, если автоматически вращаться, когда устройство вращается. если он возвращает «НЕТ», вам необходимо явно повернуть viewController.

Ну, я надеюсь, что я помог и не написать ответ, который полностью не рассматривается, что вы спросили ... :)

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

  • Нет связанных вопросов^_^