2012-09-26 15 views
12

Aby odtworzyć wideo w mojej aplikacji, ustawię MPMoviePlayerController i dodaję ją do widoku podrzędnego. Użytkownik może przejść do trybu pełnoekranowego za pomocą gestu uszczypnięcia.Wejście do trybu pełnoekranowego w wywołaniach MPMoviePlayerController viewWillDisappear i viewDidDisappear

W tym viewController (zawierającym widok odtwarzacza filmów) ustawię viewWillDisappear, aby ustawić obiekty na zero.

Jednak w systemie iOS 6 po włączeniu trybu pełnoekranowego MPMoviePlayerController w kontrolce widoku zawierającej widok odtwarzacza filmów wywołuje metody viewWillDisappear i viewDidDisappear.

W iOS5 metody te nie zostały wywołane.

+0

Spójrz na to rozwiązanie i sprawdź, czy działa ono na Twój problem. http://stackoverflow.com/a/15440274/1437106 – Husky

Odpowiedz

16

natknąłem tej kwestii, jak również i to sprawiało mi wiele problemów. Moim tymczasowym rozwiązaniem do naprawienia błędu jest sprawdzenie wartości Boolean odtwarzacza fullscreen w viewWillDisappear: i/lub viewDidDisappear:. Jeśli wróci on YES, film wejdzie w tryb pełnoekranowy i powinieneś powstrzymać się od robienia czegokolwiek, co mogłoby go przerwać.

+1

Metoda viewWillDisappear jest również wywoływana dla wszystkich superopinie. Jeśli masz kontroler główny, który spawnuje inny kontroler, który zawiera MPMoviePlayerController, wywołanie metody viewWillDisappear powoduje przejście do początku łańcucha. Czy istnieje obejście, aby przerwać łańcuch? –

+0

Sądzę, że możesz spróbować pominąć wywołanie "[super viewWillDisappear:]" w zależności od tego, czy wartość 'fullscreen' ma wartość true czy false. Ale w oparciu o twój kod, który może spowodować więcej problemów niż to naprawi. – Anthony

0

nie jestem pewien, że jest to pytanie, ale w przypadku gdy ktoś ma problem z emisji podaną w opisie, że jest ktoś, używając viewController (który zawiera Movie Player view), znalazłem rozwiązanie:

Używałem kontrolera widoku z kontrolerem Movie Player, a następnie przedstawiłem ten kontroler widoku jako podgląd. Właśnie się go pozbyłem i użyłem MoviePlayer.view jako subview bezpośrednio i działa dobrze.

Nie ma problemu z iOS 5, ale teraz jest. Napraw to i ciesz się!

Powiązane problemy