5

を作成してiOS applicationいますが、次の問題が発生しました。

プロジェクトはportraitモード アプリケーションに設定されます。ビデオを含むUIWebviewWeb ページをロードする があります。youtubeビデオをクリックすると、 で始まりますyoutube player。ビデオが モードに変わり、「完了」をクリックすると、 の表示landscapeに戻ります。UIWebviewlandscape

NSNotificationビデオが終了するとを受け取りますが、portraitモードを強制することはできません。

これは不可能です。どうすれば YouTube を許可しlandscape、アプリを強制的にportraitモードに保つことができますか? または別の回避策はありますか?

編集:

Apple に問い合わせたところ、バグであることが判明し、報告されています。

4

2 に答える 2

2
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

プライベート API です。私はそれを使用することはお勧めしません。

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];
    UIView *view = [window.subviews objectAtIndex:0];
    [view removeFromSuperview];
    [window insertSubview:view atIndex:0];

私が考えるはるかに良い方法です。アプリの向きを強制的に調整します。

于 2012-06-07T13:15:33.943 に答える
0

あなたが言ったように NSNotification を使用できると思いますが、呼び出されたメソッドでこのコード行を使用して、ビューを縦向きに強制します

- (void)YourMethodCalledByNSNotification
{
    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

    if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight || orientation == UIInterfaceOrientationPortraitUpsideDown) 
    {
        [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
    }
}

役立つことを願っています

于 2012-05-02T07:19:56.400 に答える