我的问题是我的应用在最初以UIDeviceOrientationPortrait
以外的方向加载时无法正确加载。我支持所有方向,在初始加载后,我可以正确地旋转到任何方向。
它还可以在任何方向关闭并重新打开应用程序。它似乎只是导致问题的初始加载。关于可能发生的事情的任何想法?
我甚至不知道要发布什么代码来试图证明这个问题。谢谢!
答案 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)
事实证明问题是由于拥有一个“容器”视图控制器,然后屏幕上的其他视图控制器没有占用整个屏幕。加载我的模态视图时,我是从一个较小的视图控制器而不是容器中进行的。将模态视图演示文稿移动到容器中可以解决问题。谢谢你让我思考正确的方向。