Iphone IAD在iOS6中以奇怪的位置打开

Iphone IAD在iOS6中以奇怪的位置打开,iphone,ios,iad,Iphone,Ios,Iad,我在我的应用程序中添加了一个ADBannerView。 将屏幕旋转为横向时,我将ADBannerView更改为水平框架,如下所示: 但当在iOS6中单击时,iad将在一个奇怪的位置打开: 在iOS4/5中,没有这个问题 为什么以及如何修复?我把代码上传到了 特别感谢 在IOS 6中,您的应用程序代理中的UIKIT framework发生了更改。请使用这些代码设置您的rootviewcontroller if ( [[UIDevice currentDevice].systemVersion

我在我的应用程序中添加了一个ADBannerView。 将屏幕旋转为横向时,我将ADBannerView更改为水平框架,如下所示:

但当在iOS6中单击时,iad将在一个奇怪的位置打开:

在iOS4/5中,没有这个问题

为什么以及如何修复?我把代码上传到了


特别感谢

在IOS 6中,您的应用程序代理中的UIKIT framework发生了更改。请使用这些代码设置您的rootviewcontroller

if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)
{
    //  addSubView doesn't work on iOS6
    self.window.rootViewController = navigationContoller;
}
else{
    // use this mehod on ios6
    [self.window setRootViewController:navigation];
}
if([[UIDevice currentDevice].systemVersion floatValue]<6.0)
{
//addSubView在iOS6上不起作用
self.window.rootViewController=导航控制器;
}
否则{
//在ios6上使用此方法
[self.window setRootViewController:导航];
}

与iOS6一样,苹果改变了管理设备方向的方式。 在iOS6中,您应该使用新方法来管理iOS6中引入的方向。问题的原因在于您的代码WillAnimate可能不会在设备旋转时调用

所以您应该使用iOS6版本中介绍的以下方法

  - (BOOL)shouldAutorotate
  {
    return  YES;
   }

 - (NSUInteger)supportedInterfaceOrientations
  {
   return  UIInterfaceOrientationMaskAll;
  }
如果希望整个应用程序旋转,则应将Info.plist设置为支持所有方向。如果您支持整个方向,则可以通过编辑应用程序的
.plist
文件来允许旋转,就像我在下面的快照中所做的那样。

现在,如果您只希望更改特定视图的所需方向,则必须执行某种子类并覆盖自动旋转方法以仅返回所需方向。

要了解更多信息,您应该了解这一点

编辑:正如您所解释的,在横向模式下点击iAD,然后广告屏幕上突然发生了尴尬的事情。 因为苹果在iPhone和iPad上的测试广告只是一幅肖像画。真正的广告可能会支持景观模式。 这里有太多与同一问题相关的线程。因此您无需担心。


我希望以上解决方案能对您有所帮助

发生这种情况是因为由于方向问题,实际上在IOS6中,我们需要以不同的方式调整方向,就像在IOS6之前(在iOS5中)一样。因此,我建议您在设备方向发生变化时管理视图,可以跟随此链接,因为您的应用程序支持多方向。。。!!!!!我添加了这两种方法,但问题仍然存在。我的视图控制器可以在添加这两种方法之前自动旋转。你能看看我的代码吗?只需运行,将模拟器旋转到横向,然后单击iad横幅。非常感谢你!在横向屏幕中单击iad横幅,是否有任何奇怪的事情发生?@OpenThread您在ladnscape模式中右键单击iad,其行为笨拙。查看此@iOS开发者接受编辑答案,我将您的评论放入其中,我将接受答案:D@OpenThread好啊我不知道如何接受一些人的编辑答案。好吧,让我试试。。。!!!!