2012-09-26 4 views
12

Um Video in meiner App abzuspielen, setze ich MPMoviePlayerController und füge es zur Unteransicht hinzu. Der Benutzer kann mit Pinch-Geste in den Vollbildmodus wechseln.Im Vollbildmodus in MPMoviePlayerController aufrufen Aufrufe viewWillDisappear und viewDidDisappear

In dieser viewController (die die Movie-Player-Ansicht enthält), setze ich viewWillDisappear, um Objekte auf Null zu setzen.

In iOS 6 ruft der MPMoviePlayerController im View-Controller, der die Movie-Player-Ansicht enthält, beim Aktivieren des Vollbildmodus die Methoden viewWillDisappear und viewDidDisappear auf.

In iOS5 wurden diese Methoden nicht aufgerufen.

+0

Schauen Sie sich diese Lösung an und sehen Sie, ob sie für Ihr Problem funktioniert. http://StackOverflow.com/a/15440274/1437106 – Husky

Antwort

16

ich auf diesem Thema kam auch, und es hat mir eine Menge Kopfschmerzen. Meine vorübergehende Lösung, bis der Fehler behoben ist, ist der fullscreen boolesche Wert des Players in viewWillDisappear: und/oder viewDidDisappear: zu überprüfen. Wenn YES zurückgegeben wird, wechselt der Film in den Vollbildmodus und Sie sollten alles unterlassen, was ihn möglicherweise unterbricht.

+1

Die ViewWillDisappear-Methode wird auch für alle Übersichten aufgerufen. Wenn Sie einen Hauptcontroller haben, der einen anderen Controller mit dem MPMoviePlayerController erzeugt, wird der Aufruf von viewWillDisappear in der gesamten Kette fortgesetzt. Gibt es einen Workaround, um die Kette auch zu unterbrechen? –

+0

Ich denke, Sie könnten versuchen, den Aufruf von '[super viewWillDisappear:]' zu überspringen, je nachdem, ob der 'fullscreen'-Wert wahr oder falsch ist. Aber basierend auf Ihrem Code, der möglicherweise mehr Probleme verursacht als behoben. – Anthony

0

Ich bin nicht sicher, dass dies eine Frage ist, aber falls jemand hat ein Problem mit dem Thema hier erwähnt, das heißt, jemand einen Viewcontroller mit (enthält die Video-Player-Ansicht), fand ich die Lösung:

Ich benutzte einen View-Controller mit dem Movie-Player-Controller und präsentierte diesen View-Controller dann als Unteransicht. Ich habe es einfach losgeworden und den MoviePlayer.view direkt als Unteransicht verwendet und es funktioniert gut.

Kein Problem mit iOS 5, aber jetzt ist es. Repariere es und genieße es!