2013-11-21 19 views
6

Ho una schermata che supporta l'orientamento del dispositivo.iOS >> Orientamento dispositivo >> La schermata non supporta Upside Down

Tutto funziona bene, tranne per il fatto che quando ruoto il dispositivo capovolto (pulsante home in alto), la rotazione non funziona (è bloccata sulle ultime impostazioni del paesaggio).

so dei vari luoghi necessari essere aggiornato per supportare questo:

  • Nel VC in sé, ho aggiunto i metodi:

enter image description here

  • Nel target del progetto, Ho aggiornato come segue:

enter image description here

  • Nella Storyboard VC scena, ho aggiornato come segue:

enter image description here

Che cosa mi manca qui?

+0

Guarda ........ http://stackoverflow.com/a/33411646/294884 – Fattie

risposta

10

si hanno anche per consentire la rotazione di tutti gli orientamenti in ogni genitore View Controller della corrente controller della vista principale. Ad esempio, se il controller della vista si trova nel controller di navigazione, prova a suddividerlo e sovrascrivere gli stessi metodi dell'esempio.

Edit: Come @JordanC accennato, dal momento che iOS 7 è possibile implementare UINavigationControllerDelegate metodo per restituire orientamenti supportati personalizzato:

- (UIInterfaceOrientationMask)navigationControllerSupportedInterfaceOrientations:(UINavigationController *)navigationController 
+0

Wow ... Non ci ho pensato affatto ... Bella cattura !!! –

+4

Sì, immagino sia necessario solo per Upside Down su iPhone, perché quello non è supportato da Navigation Controller per impostazione predefinita. – Tricertops

+0

BTW, Quindi se ho diversi VC su uno stack di navigazione e desidero che il primo NON sia ruotabile (mentre quelli che seguono sono) - Sembra che una volta ho sottoclassato UINavigationController e impostato per essere ruotabile, non posso imposta il suo figlio VC per non accettare la rotazione. qualche idea? –

0

Hai provato su un dispositivo reale?

comunque provare questo:

- (NSUInteger)supportedInterfaceOrientations { 
    return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown); 
} 
+0

'UIInterfaceOrientationMaskAll', come pubblicato, coprirà anche questi. – rckoenes

+0

Beh, l'ho provato su un dispositivo reale e ha lo stesso problema. Inoltre, ho provato quello che avevi suggerito (usando l'operatore |) e non va bene anche qui ... –

1

Come @eGanges menzionato il punto chiave potrebbe essere quella di creare una sottoclasse vostro UITabBarController (e sovrascrivere supportedInterfaceOrientations) se questo è il tuo controller di visualizzazione iniziale, in questo caso questo è l'unico controller che dovresti creare in sottoclasse (e naturalmente dovresti aggiungere tutti gli orientamenti dell'interfaccia supportati all'app Info.plist file UISupportedInterfaceOrientations)