1

私のアプリのビューは縦向きのみです - 私のビュー コントローラーとルート ビュー コントローラーはどちらも、iOS 5 と iOS 6 の両方をサポートするために、両方shouldAutorotateToInterfaceOrientation:を使用して縦向きにのみ回転するようにします。ビューに iAd バナーを追加しました。supportedInterfaceOrientations画面の上部に正しく表示されます。それをタップして iPad でテスト広告を表示すると、テスト広告が横向きに表示されます。これは予想どおりです。iAd はどのような向きでもかまいません。しかし、広告を閉じると、ビューは横向きになり、バナーのあるビューとルート ビュー コントローラーのビューの両方が表示されます。それらは回転して縦向きに戻り、デバイスを回転させてもそこにとどまります。

iAd がビューを回転させないようにする方法、または iAd が閉じたときにビューを縦向きに戻すにはどうすればよいですか?

編集:私も使用してtrueapplication:supportedInterfaceOrientationsForWindow:に設定しようとしましshouldAutoRotateた-どちらも問題を解決しません。

もう一度編集してください:私はまだ運がありません。これは、私が経験しているバグを示すかなり最小限のView Controller実装を含むプロジェクトです-どんな助けも大歓迎です!

4

3 に答える 3

0

I thought i'd just push an update as i got this fixed finally, this works on iOS 8 and 9, first up register the app to track device orientation.

AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

    return YES;
}

Now when the advert finishes displaying you can check the device orientation and force it back to portrait.

-(void)bannerViewActionDidFinish:(ADBannerView *)banner{

            UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

            if (UIDeviceOrientationIsLandscape(orientation)) {

                NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
                [[UIDevice currentDevice] setValue:value forKey:@"orientation"];
            }

            //NSLog(@"iAD actions finished");
    }
于 2016-02-25T12:34:15.193 に答える
0

私は2つのことを試します。最初に、アプリのターゲット構成 (概要) で「サポートされているインターフェイスの向き」を設定します。

次に、インターフェイス ビルダーの各ビューで、シミュレートされたメトリック (プロパティ パネルの 4 タブ) で、縦向きが選択されていることを確認します。「推測」を選択した場合は、それ自体が表示されるときに以前の画面の向きが使用されます。

于 2013-03-26T12:49:08.040 に答える
0

解決しました。私のセカンダリView Controllerは、メインView Controllerの子View Controllerでなければなりませんでした。

于 2013-04-02T23:40:22.957 に答える