2012-09-26 13 views
12

Per riprodurre video nella mia app, ho impostato MPMoviePlayerController e lo aggiungo alla sottoview. L'utente può passare alla modalità a schermo intero usando il gesto di pizzicare.Immissione a schermo intero in MPMoviePlayerController chiama viewWillDisappear e viewDidDisappear

In questo viewController (che contiene la visualizzazione di Movie Player), ho impostato viewWillDisappear per impostare gli oggetti su zero.

Tuttavia, in iOS 6, quando si attiva la modalità a schermo intero, il MPMoviePlayerController nel controller di visualizzazione che contiene la visualizzazione di Movie Player chiama i metodi viewWillDisappear e viewDidDisappear.

In iOS 5, questi metodi non sono stati chiamati.

+0

Guarda questa soluzione e verifica se funziona per il tuo problema. http://stackoverflow.com/a/15440274/1437106 – Husky

risposta

16

mi sono imbattuto in questo problema come bene e mi ha causato un sacco di mal di testa. La mia soluzione temporanea fino a quando il bug è stato risolto è quello di verificare il valore booleano del giocatore in viewWillDisappear: e/o viewDidDisappear:. Se restituisce YES, il film sta entrando in modalità a schermo intero e si dovrebbe astenersi dal fare qualsiasi cosa che potrebbe interromperlo.

+1

Il metodo viewWillDisappear viene chiamato anche per tutte le supervisioni. Se si dispone di un controller principale che genera un altro controller che contiene MPMoviePlayerController, quando viene richiamato viewWillDisappear, esso raggiunge la catena. C'è una soluzione alternativa per interrompere la catena? –

+0

Immagino che potresti provare a saltare la chiamata a '[super viewWillDisappear:]' in base al fatto che il valore 'fullscreen' sia vero o falso. Ma in base al codice che potrebbe causare più problemi di quelli risolti. – Anthony

0

io non sono sicuro che questa è una domanda, ma nel caso in cui qualcuno ha un problema con il problema qui dichiarato, vale a dire, qualcuno che usa un viewController (che contiene il Movie Player View), ho trovato la soluzione:

Stavo usando un controller di visualizzazione con il controller di Movie Player e quindi ho presentato questo controller di visualizzazione come subview. Mi sono appena sbarazzato di esso e ho usato direttamente MoviePlayer.view come sottomenu e funziona perfettamente.

Non è un problema con iOS 5, ma ora lo è. Risolvilo e divertiti!

Problemi correlati