初始加载时旋转

时间:2012-06-06 02:32:13

标签: iphone objective-c ios ipad

我的问题是我的应用在最初以UIDeviceOrientationPortrait以外的方向加载时无法正确加载。我支持所有方向,在初始加载后,我可以正确地旋转到任何方向。

它还可以在任何方向关闭并重新打开应用程序。它似乎只是导致问题的初始加载。关于可能发生的事情的任何想法?

我甚至不知道要发布什么代码来试图证明这个问题。谢谢!

4 个答案:

答案 0 :(得分:1)

有两种可能性:

1。)您在第一个视图中设置了错误。没有代码,我无法帮助你。

2。)您根据UIWindow投注自己的轮换。我很清楚这个问题,因为UIWindow没有处理方向的方法。我认为UISplitView完成了你上面提到的内容,但没有抓住我。基于UIWindow基于上述问题或viewControllers之间的手动转换等问题。到目前为止,除了解决方法之外没有其他正确的解决方法。

简而言之,只需快速检查设备方向(而不是状态栏)并将视图旋转到viewWillAppear或类似的正确方向。它应该不是那么难,因为你已经准备好了所有的旋转代码。

如果您想要非常懒惰,只需将[self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.3]];放入ViewWillAppear即可。从理论上讲,它应该成功。

另请参阅:https://stackoverflow.com/a/3897243/581194了解更多获取方向的方法。如果以上不起作用。

答案 1 :(得分:1)

试试这个,

在初始加载时viewDidLoad将被调用,因此请调用您的方向方法 viewDidLoad

<强>代码:

[self Methodname:[UIApplication sharedApplication].statusBarOrientation];

答案 2 :(得分:1)

尽快调用此方法:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

答案 3 :(得分:0)

事实证明问题是由于拥有一个“容器”视图控制器,然后屏幕上的其他视图控制器没有占用整个屏幕。加载我的模态视图时,我是从一个较小的视图控制器而不是容器中进行的。将模态视图演示文稿移动到容器中可以解决问题。谢谢你让我思考正确的方向。