3

iOS 6 から新しい UIInterfaceOrientations を設定しようとして、うまくいきません。

アプリの再開:

  • 私のアプリにはたくさんのビューがあります。
  • ほとんどすべてのビューは、縦向きで表示する必要があります。
  • 2 つのビュー (でビデオを再生するビューMPMoviePlayerViewController) は、左、右、および縦方向に回転する必要があります。

私の最初のアイデアは、アプリでサポートされている向きを縦向きに設定し、ビデオ プレーヤー ビューからサポートされている向きを変更する (方法がわからない) ことでした。

これに対処する最善の方法は何ですか?

前もって感謝します!

4

2 に答える 2

2

この問題は、Supported Interface Orientations を必要なすべて (Portrait、Landscape right and left) に設定し、いずれかを追加することで解決されましCategoryUINavigationController

UINavigationControllerポートレート モードを維持したい場合にカテゴリを追加し、iOS 6 のローテーションを次の投稿のように処理しました。

@implementation UINavigationController (Rotation_IOS6)

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

@end

これを実装しても、コードは次のようになっているため、まだいくつかの問題があります。

[self.window.rootViewController presentModalViewController:controller animated:NO]; 

これの代わりに:

[self.navigationController pushViewController:controller animated:NO];

上記の変更により、アプリ全体をポートレート モードに保ち、メソッド (shouldRotate および supportedInterfaceOrientations) がオーバーライドされていないため、ビデオ プレーヤー ビューを回転させ続けることができました。

于 2012-09-27T18:40:59.620 に答える
1

私の投稿をチェックしてください: https://stackoverflow.com/a/12538622/1575017 同じことですが、向きが反転しています。

于 2012-09-26T20:56:30.753 に答える