2014-10-24 14 views
11

Ho un'app sviluppata originariamente per iOS 7.1 che sto testando su un iPad tramite Xcode 6.1. Quando si esegue su un iPad con versione 7.1 o simulatore 7.1, l'app funziona come previsto. Sul simulatore 8.1 o 8.1 di iPad, sembra che la rotazione non sia gestita in modo appropriato. Vedo la barra di stato in alto a ruotare, ma l'app stessa non cambia. Capisco che questo è legato ai metodi di rotazione deprecati in iOS 8. La mia domanda è ... ora cosa ???iOS 8 - App non ruotata appropriatamente

Non ho trovato alcuna documentazione che fornisca una risposta concisa su come gestire la rotazione utilizzando i nuovi meccanismi di iOS 8. C'è un modo per gestire con grazia le rotazioni in iOS 8 nello stesso modo in cui le ho gestite su iOS 7? Non vedo nemmeno i vecchi metodi di rotazione chiamati, quindi sembra che questo sia più di una tipica "deprecazione". Sembra che abbiano eliminato completamente le chiamate a questi metodi.

Qualsiasi aiuto o consiglio?

+0

Notiamo solo che il "primo" nell'elenco di Orientamenti supportati per PList è impostato, quindi non cambia nulla. Li ho riorganizzati per assicurarlo. –

risposta

6

ho avuto un problema simile e ho riparato rimuovendo le chiavi ipad UIMainStoryboardFile e UIMainStoryboardFile ~ dalle informazioni elenco delle proprietà dell'applicazione

dare uno sguardo a questa discussione https://devforums.apple.com/message/1064397#1064397

+1

Sembra funzionare per me! Grazie mille! – Shadowman

+0

La soluzione di cui sopra ha funzionato per me .. Grazie – SMS

+0

Ho provato questo, schermo nero, non funziona –

1

Usa viewWillTransitionToSize:withTransitionCoordinator: in questo modo:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 
{ 
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; 

    // Will rotate 

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { 
     // Will animate rotation 
    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) { 
     // Did rotate 
    }]; 
} 

Si dovrebbe dare un'occhiata al WWDC 2014 video "View Controller I progressi nella iOS 8" in cui questo è discusso.

+1

Ho provato ad aggiungerlo ai miei controller di vista, ma non vedevo che veniva chiamato. C'è qualcos'altro che devo fare per abilitare questo? – Shadowman

+0

@Shadowman Stai usando uno storyboard? La risposta di Fabrice sembra descrivere i problemi di rotazione per le app che utilizzano gli storyboard in iOS 8.1. Non mi sono imbattuto in questo problema, forse perché non sto usando gli storyboard. – user2135004

+1

Sì, sto usando gli storyboard. Guarderò nella sua risposta. – Shadowman

12

Si sta utilizzando storyboard? In tal caso, potresti avere un vecchio codice nel tuo metodo application didFinishLaunchingWithOptions.

provare a rimuovere la seguente riga di codice e di tutti gli altri a che fare con UIWindow:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

Altri hanno detto per rimuovere le linee dal file plist, ma che non dovrebbe essere necessario.

+0

Non ho quella linea, ma ho una linea in cui ho impostato il rootViewController sulla mia finestra. Necessario, a causa di come gli storyboard devono essere caricati. – Shadowman

+0

Grazie, è stato sicuramente il problema che stavo avendo. Rimozione di quella linea risolto il problema. – JamWils

+0

Grazie ChrisJP, mi hai salvato un sacco di tempo. – jpd

Problemi correlati