当我的应用程序最初以UIDeviceOrientationPortrait
. 我支持所有方向,在初始加载后,我可以正确旋转到任何方向。
它还可以在任何方向关闭和重新打开应用程序。它似乎只是导致问题的初始加载。关于可能发生的事情有什么想法吗?
我什至不知道要发布什么代码来尝试演示该问题。谢谢!
当我的应用程序最初以UIDeviceOrientationPortrait
. 我支持所有方向,在初始加载后,我可以正确旋转到任何方向。
它还可以在任何方向关闭和重新打开应用程序。它似乎只是导致问题的初始加载。关于可能发生的事情有什么想法吗?
我什至不知道要发布什么代码来尝试演示该问题。谢谢!
有两种可能:
1.)您在第一个视图中设置了错误。没有代码我无法帮助你。
2.) 您正在根据您的UIWindow
. 我很清楚这个问题,因为UIWindow
没有方法来处理方向。我想UISplitView
你上面提到的,但不要让我坚持。基于UIWindow
诸如上面的问题或视图控制器之间的手动转换之类的许多事情搞砸了。到目前为止,除了变通方法之外,没有适当的修复方法。
简而言之,只需快速检查设备方向(而不是状态栏)并将视图旋转到正确的方向viewWillAppear
或类似的东西。这应该不是那么难,因为您已经准备好所有轮换代码。
如果你真的很懒惰,只需放入[self willAnimateRotationToInterfaceOrientation:[[UIDevice currentDevice] orientation] duration:0.3]];
你的ViewWillAppear
. 从理论上讲,它应该可以解决问题。
另请参阅:https ://stackoverflow.com/a/3897243/581194了解更多获取方向的方法。如果以上不起作用。
试试这个,
在初始加载viewDidLoad
将被调用,所以调用你的方向方法
viewDidLoad
代码:
[self Methodname:[UIApplication sharedApplication].statusBarOrientation];
尝试尽快调用它:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
事实证明,问题是由于有一个“容器”视图控制器,然后是屏幕上没有占用整个屏幕的其他视图控制器。加载我的模态视图时,我是从一个较小的视图控制器中进行的,而不是容器。将模态视图演示移动到容器中解决了这个问题。感谢您让我朝着正确的方向思考。