Ho due UIViewControllers, "A" e "B", dove "A" sostituisce la shouldAutorotateToInterfaceOrientation di tornare SÌ per UIInterfaceOrientationPortrait, e "B" restituisce SI per tutti gli orientamenti. Nel mio esempio "A" è il controller della vista di navigazione di root, quindi utilizzo pushViewController per "B". Dopodiché ruoto il dispositivo in orizzontale, che esegue automaticamente l'autorotazione di "B", quindi faccio clic su "B" (pulsante indietro o tramite popViewController) per tornare a "A".popViewController non AutoRotate torna all'orientamento permesso
Quando si utilizza iPhone OS 3.1.3, "A" torna all'orientamento verticale come previsto. Quando si utilizza iPhone OS 3.2, ho due effetti collaterali:
- "A" viene visualizzato in orizzontale.
- La barra di spostamento non si aggiorna anche se viene visualizzata la lettera "A". La barra di navigazione mostra ancora gli elementi per "B". Solo dopo aver tentato di tornare indietro/pop un'altra volta, la barra di navigazione si animerà per mostrare gli elementi per "A". Se invece provo a premere di nuovo "B" e a tornare indietro, devo far apparire due volte prima che la barra di navigazione si anima per mostrare gli elementi per "A". Durante questi "intermedi pop" rimane visualizzata la vista per "A".
Mentre la ricerca di questo problema, ho visto altre risposte suggeriscono di eseguire manualmente la rotazione ([UIDevice setOrientation] o tramite un tranformation), tuttavia questo non aiuta a capire quale sia il problema, soprattutto perché si comporta in modo diverso tra la due sistemi operativi.
Quindi la mia domanda è: tutti i miei UIViewControllers sullo stack UINavigationController supportano esattamente gli stessi orientamenti futuri? E se no, allora c'è qualcosa che devo fare per farlo funzionare come ha fatto per OS 3.1.3?
Questo problema si verifica anche in iPhone OS 4.0. – iamj4de
Questo comportamento si verifica sia sul dispositivo che sul simulatore? Ho avuto un problema simile che è successo solo sul simulatore a causa di bug del simulatore. – MrHen