我创建了一个iOS6“单视图”iPhone应用程序。
该应用程序仅限于人像。
我在应用程序中添加了iAd。
我向应用程序添加了其他视图,如下所示:
if (self.menuChoiceInstance == nil) {
self.menuChoiceInstance = [[NJDViewControllerMenuChoice alloc] initWithNibName:@"NJDViewControllerMenuChoice" bundle:nil];
self.menuChoiceInstance.delegate = self;
}
[self.view addSubview:self.menuChoiceInstance.view];
一切似乎都很好。
然后我添加了通用/ iPad支持。添加子视图时包含以下行:
[self.menuChoiceInstance.view setFrame:CGRectMake(0, 0, self.view.frame.size.width,
self.view.frame.size.height)];
现在我遇到了iAds的问题。
当按下rootViewController上的iAd时,iPad会旋转到横向。然后它在关闭广告时旋转回肖像。
然而,在子视图上按下iPad上的iAd会使视图旋转到横向,并在关闭时保持横向。这会破坏我的用户界面。
这个iPad问题是主要问题,但我现在偶尔也会看到iPhone视图的问题,这可能是相关的。
屏幕底部显示测试广告的iAd横幅有时会在其中包含巨大的文字和图标,使它们相互重叠,无法阅读。按iAd可将手机旋转为横向(再次在仅限肖像的应用程序中),但iAd会将广告显示为仍为纵向广告,其内容会从屏幕底部消失。
答案 0 :(得分:2)
这里有类似的问题。很难找出它是什么因为我使用了第三方API。通过将我的UIView作为子项添加到rootViewController来解决我的问题。然后我的视图开始响应所有主窗口更改。在myUIViewController viewDidLoad
的某个地方(或者和你一样多)就像这样的一行。
[myUIWindow.rootViewController addChildViewController:self];
类似问题......
iAd Landscape Strange View Behavior
Force ADBannerView to rotate (Not "orientation" but actual transform)
答案 1 :(得分:0)
我认为问题是由于我将子视图添加到当前视图而不是切换视图这一事实。
我更改了添加子视图的代码:
[self.view addSubview:self.statsInstance.view];
显示视图的代码。
[self presentViewController: self.settingsInstance animated:YES completion:nil];
这似乎解决了我的问题,以及iAd委派方法的一些其他问题(bannerViewActionDidFinish在广告加载后直接调用。)