Как представить MPMoviePlayerViewController из UITabBarController? - PullRequest
3 голосов
/ 19 августа 2010

У меня есть контроллер вида, который был добавлен к UITabBarController.В этом контроллере просмотра у меня есть кнопка, которая открывает фильм, используя MPMoviePlayerViewController.

При воспроизведении фильма верхняя панель навигации по-прежнему накладывается на верхнюю часть фильма, эффективно блокируя часть экрана.

Однако, если этот контроллер вида не находится внутри UITabBarController, фильм воспроизводится нормально.

Кто-нибудь знает, что происходит?

1 Ответ

4 голосов
/ 19 августа 2010

Разобрался.Я думаю, что все становится не так, как надо, потому что MPMoviePlayerViewController имеет метод, добавленный в категорию к UIViewController, который называется presentMoviePlayerViewControllerAnimated:.Обычно вы бы назвали это так в вашем UIViewController:

[self presentMoviePlayerViewControllerAnimated:mp];

Но в этом случае, если вы добавили свой контроллер представления в стек UITabBarController, self - это ваш контроллер представления внутриконтроллер панели вкладок, и я думаю, что это делает вещи не по себе.Исправление состоит в том, чтобы вызвать presentMoviePlayerViewControllerAnimated: с родительским контроллером представления, который в моем случае был другим UIViewController, который содержал UITabBarController.Я просто сослался на родительское представление и добавил его к методу init моего контроллера представления, а затем вызвал что-то вроде [parentController presentMoviePlayerViewControllerAnimated:mp].

Whew.Надеюсь, это кому-нибудь поможет.

...