2

2 つのビュー コントローラーがあります。1 つのビューにはボタンがあり、ユーザーがボタンをクリックすると、MPMoviePlayer コントローラーが存在する別のビューにリダイレクトされます。MPMoviePlayer コントローラー ビューをデフォルトで LandsapeRight モードに表示したいと考えています。

以下のコードをbuttonActionに記述します

-(void)buttonAction
{

    tLive = [[toneTvlive alloc]init];
        [self.navigationController pushViewController:tLive animated:YES];
}

そして2番目のビューでは、以下のコードを書きます

- (void)viewDidLoad
{
    [super viewDidLoad];
    printf("\n hii");
    self.navigationController.navigationBar.hidden = YES;
    [[UIApplication sharedApplication]setStatusBarHidden:NO];
    NSURL *mediaURL = [NSURL URLWithString:@""];
    mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(moviePlayBackDidFinish:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification 
                                               object:nil];

    //[mp setControlStyle:MPMovieControlStyleFullscreen];
    [mp setMovieSourceType:MPMovieSourceTypeStreaming];
    [mp setFullscreen:YES animated:YES];

    [mp.view setFrame: CGRectMake(0,0, 480,320)];
    [self.view addSubview:mp.view];

    [mp prepareToPlay];
    [mp play];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations.

    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

最初にプログラムを実行すると、縦向きモードでのみビューが表示されます。ビューを横向きに回転するように促すことはありませんが、デバイスを回転させた後は正常に動作します。

4

1 に答える 1

0

iOS 6 以降を使用している場合は、View Controller を横向きに自動回転できます。

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL)shouldAutorotate {
    return YES;
}

以前の iOS バージョンをターゲットにしている場合は、同じことについて良い SO 回答があります。

于 2012-11-28T10:50:20.493 に答える