UIViewControllerコンテインメントを実装してみてください。ムービーを表示しているタブの viewController を親 (またはコンテナー) viewController として指定します。
サブクラスで shouldAutorotateToInterfaceOrientation をオーバーライドして、ランドスケープのみを許可する必要がありますが、これはすでに行っているようです。親View ControllerとtabBarControllerで、自動回転メソッドをサブクラスに転送していることを確認する必要があります。これは、shouldAutorotateToInterfaceOrientation のサブクラス実装に NSLog を入れることで確認できます。
次に、ビデオを表示する場合は、MPMoviePlayerViewController のサブクラスを追加します。
ムービー プレーヤーのサブクラスをロードするときは、親ビュー コントローラーでこれを実行してみてください。
[self addChildViewController:self.subclassedMoviePlayerViewController];
[self.view addSubview:self.currentViewController.view];
[self.subclassedMoviePlayerViewController didMoveToParentViewController:self];
または、変更をアニメーション化する場合は、次のようにすることができます。
CGRect viewFrame=self.subclassedMoviePlayerViewController.view.frame;
CGFloat viewHeight=inputViewFrame.size.height;
CGRect newFrame=CGRectMake(0, self.view.frame.size.height, viewFrame.size.width, viewFrame.size.height);
self.subclassedMoviePlayerViewController.view.frame=newFrame;
[self addChildViewController:self.subclassedMoviePlayerViewController];
CGRect offSetRect=CGRectOffset(newFrame, 0, -inputViewHeight);
[self.view addSubview:self.subclassedMoviePlayerViewController.view];
[UIView animateWithDuration:0.2
animations:^{
self.subclassedMoviePlayerViewController.view.frame=offSetRect;
}
completion:^(BOOL finished){
[self.subclassedMoviePlayerViewController didMoveToParentViewController:self];
}];
もちろん、追加する前に、ムービー プレーヤー ビュー コントローラーのサブクラスのビューのフレームを設定する必要があります。
次に、それを削除する場合:
[self.subclassedMoviePlayerViewController willMoveToParentViewController:nil];
[self.subclassedMoviePlayerViewController.view removeFromSuperView];
[self.subclassedMoviePlayerViewController removeFromParentViewController];
幸運を
t