guarda iPad in orientamento corretto dopo dismissMoviePlayerViewControllerAnimated
Domanda
Il mio iPad visualizza una schermata piena filmato utilizzando il comodo di classe MPMoviePlayerViewController
. Mi presento in questo modo:
[self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];
E più tardi, quando ha comunicato che il gioco è fatto, mi respingere in questo modo:
[self.hostController dismissMoviePlayerViewControllerAnimated];
Funziona bene, tranne quando l'utente ruota l'iPad durante la riproduzione di film:
1- L'iPad è in posizione verticale. La mia opinione è verticale. 2- L'utente inizia il film in orientamento verticale. Il giocatore è verticale. 3- L'utente ruota l'iPad per l'orientamento orizzontale. 4- Il giocatore passa al suo orientamento orizzontale. Fin qui tutto bene. 5- Il film si interrompe, il giocatore è respinto, i miei riappare, l'iPad è ancora orizzontali, ma la mia opinione è rimasto con l'orientamento verticale è quella del passaggio 1. Ora guarda lateralmente.
Naturalmente, se l'utente poi ruotare l'iPad, è tornato alla normalità. La mia opinione quindi ruota normalmente durante la rotazione del iPad.
Qualcuno ha mai incontrare questo? Una soluzione semplice?
Grazie.
Soluzione
Ho incontrato questo numerose volte e sembra essere un bug di Apple (e hanno riportato come tale).
L'unico modo (che ho trovato) intorno a questo è quello di ascoltare le notifiche UIDeviceOrientationDidChangeNotification
e UIApplicationDidChangeStatusBarOrientationNotification
. Utilizzare il timestamp relativo su tali notifiche; se entrambi verificano entro un secondo l'uno dall'altro, è possibile essere sicuri che il cambiamento barra di stato è il risultato del cambio utente orientamenti e non i Media SDK cambiare l'orientamento barra di stato. Poi, quando il film è finito, si può dire al vostro controller della vista che dovrebbe ruotare al paesaggio.