shouldAutoRotate 方法不能正常工作..?

Posted

技术标签:

【中文标题】shouldAutoRotate 方法不能正常工作..?【英文标题】:shouldAutoRotate method not working properly..? 【发布时间】:2010-08-26 08:08:03 【问题描述】:

我在基于拆分视图的 ipad 应用程序中使用了多个 uiviewcontroller。 有网络服务。对于某些特定的 Web 服务(例如注销),我需要删除拆分 查看并插入新视图,即登录屏幕。但大多数时候,登录视图的 shouldAutoRotate 方法不会被调用,从而导致不旋转的愚蠢应用程序。 这背后的原因可能是什么?我该怎么办?

【问题讨论】:

【参考方案1】:

为了维护我的旧代码,我添加了这个。

- (BOOL)shouldAutorotate
    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
    if (orientation == UIDeviceOrientationUnknown) return YES;
    BOOL result = [self shouldAutorotateToInterfaceOrientation:orientation];
    return result;

那么原代码返回有效的自转信息。

【讨论】:

【参考方案2】:

确保你没有从你的 UIViewController 中提取 UIView,它 shouldAutorotateToInterfaceOrientation: 函数返回 YES,然后使用 addSubView 将 UIView 添加到另一个 UIView。我以前也遇到过。

【讨论】:

实际上我通过下面的链接,我发现我在窗口中添加 2 个视图做错了。即登录视图和拆分视图。现在我已经将 loginview 呈现为模式视图,它解决了我的问题。现在我的应用程序可以很好地旋转。谢谢。【参考方案3】:

确保您的所有视图控制器都为您的 iPad 版本返回 YESshouldAutorotateToInterfaceOrientation: —— 至少是当时可见的那些。

见:iPad orientation change issue

【讨论】:

好的,谢谢它对我有帮助,我会试试的。实际上在 shouldAutorotateToInterfaceOrientation: 方法中我计算了视图控制器的大小,但给出了错误的大小,即它提供了前一个方向大小而不是当前。所以我根据尺寸做了一些手动调整。会不会有影响?

以上是关于shouldAutoRotate 方法不能正常工作..?的主要内容,如果未能解决你的问题,请参考以下文章

设备旋转---横竖屏切换

使用 Photolibrary 将 shouldAutorotate 设置为 false

iOS - 视频播放处理全屏/横屏时候遇见的坑

Nodejs 承诺 async/await 不能正常工作

Objective-C 中的快速傅里叶变换不能正常工作

iOS 8-viewController my_shouldAutorotate 在 presentViewController 时崩溃