2012-06-03 83 views
0
选择不同的视图时/ iAd的问题

我已经创建了一个二进制时钟和现在用的是iOS5的故事板横向/纵向按钮位置从的TabBar

willAnimateToInterfaceOrientation: duration: 

方法以将开/关按钮,用于无论是纵向或横向方向。我有两个选项卡,第一个是二进制时钟本身,第二个是如何读取时钟的指令。

这是问题所在。 iPad的主屏幕自动从肖像切换到风景,所以我可以在任一方向启动我的应用程序。另一方面,iPhone仅以纵向显示其主屏幕。这很好,但是当我启动我的应用程序时,按任一选项卡按钮,然后更改方向,而在屏幕(时钟或指令)更改方向时,选择另一个选项卡按钮可显示以前方向中的内容。在同一视图(时钟或指令)中,方向更改完美无瑕,但从一个视图切换到另一个视图时,更改方向后,内容无法正确显示。

也就是说,我在iPad上以横向模式启动了我的应用程序。默认情况下,出现二进制时钟视图。如果我改变为纵向,时钟会按预期改变。那么,如果我的iPad保持纵向模式,按下说明选项卡按钮,内容和iAd横幅(或有时只是横幅广告)将以横向显示。到目前为止,唯一的解决方案是将方向从目前的设置改变到另一个,然后再回来,但这是不可接受的。

有没有不同的方法可以用来检查调用视图时的方向并正确显示内容?很明显,我有什么不能正常工作。

回答

0

如果您在视图基础上定向dinamically搬东西,你必须检查当前方向在两个地方:

  1. willAnimate ...方法

    ,这是确定的。发生旋转时会调用此方法,并且主VC视图可见。

  2. viewWillAppear方法!

如果在VC不可见时方向改变,则不调用willAnimate ...方法。因此,在显示视图之前,您应该检查设备方向并正确设置视图/子视图。

只需使用[[UIDevice currentDevice] orientation];方法viewWillAppear来检查当前的方向是什么,并正确设置您的视图

相关问题