Comment présenter MPMoviePlayerViewController d'un UITabBarController?
-
29-09-2019 - |
Question
J'ai un contrôleur de vue qui a été ajouté à un UITabBarController
. Dans ce contrôleur de vue, j'ai un bouton qui ouvre un film à l'aide MPMoviePlayerViewController
.
Quand je joue le film, la barre de navigation supérieure est toujours au-dessus du superposée du film, bloquant efficacement une partie de l'écran.
Lorsque ce contrôleur de vue est pas dans un UITabBarController
, cependant, le film joue bien.
Quelqu'un sait ce qui se passe?
La solution
figured it out. Je suppose que les choses deviennent bancale parce MPMoviePlayerViewController
a une méthode ajoutée en tant que catégorie à UIViewController
appelé presentMoviePlayerViewControllerAnimated:
. Normalement, vous appelleriez comme ça dans votre UIViewController
:
[self presentMoviePlayerViewControllerAnimated:mp];
Mais dans ce cas, si vous avez ajouté votre contrôleur de vue d'une pile de UITabBarController
, self
est votre contrôleur de vue dans le contrôleur de barre d'onglets, et je suppose que cela rend les choses Screwy. La solution est d'appeler presentMoviePlayerViewControllerAnimated:
avec le contrôleur de vue parent, qui dans mon cas, était une autre UIViewController
qui était le logement UITabBarController
. J'ai simplement fait référence à la vue parent et ajouté à mon avis la méthode init
du contrôleur, alors appelé quelque chose comme [parentController presentMoviePlayerViewControllerAnimated:mp]
.
Ouf. L'espoir qui aide à quelqu'un.