在iOS56中自动旋转?

在iOS56中自动旋转?,第1张

概述我更新到 Xcode 4.5并且正在使用iOS6 – 这是我下次有更新时肯定不会犯的错误;对于iOS新手来说,这有点噩梦 – 我刚刚注意到我正在研究的一款应用就是自动旋转.我在更新之前从未注意到它的自动旋转,但也有可能我在测试时没有旋转手机,所以我不能确定.我已将以下代码添加到主UIViewController并且它仍在旋转: - (BOOL)shouldAutorotateToInterface 我更新到 Xcode 4.5并且正在使用iOS6 – 这是我下次有更新时肯定不会犯的错误;对于iOS新手来说,这有点噩梦 – 我刚刚注意到我正在研究的一款应用就是自动旋转.我在更新之前从未注意到它的自动旋转,但也有可能我在测试时没有旋转手机,所以我不能确定.我已将以下代码添加到主UIVIEwController并且它仍在旋转:

- (BOol)shouldautorotatetoInterfaceOrIEntation:(UIInterfaceOrIEntation)interfaceOrIEntation{    return NO;}

这是禁用自动旋转的正确方法吗?如果是,那么iOS6可能会有一些变化,我将不得不等到完整版本才能找到答案.但如果我弄错了,我应该使用什么代码呢?

一如既往地感谢您的帮助.

编辑:这是我改变它的代码,但它仍在旋转.我弄错了吗?

- (BOol)shouldautorotatetoInterfaceOrIEntation:(UIInterfaceOrIEntation)interfaceOrIEntation{if (interfaceOrIEntation == UIInterfaceOrIEntationPortrait){    return YES;}else {    return NO;}}
解决方法 那是因为从来没有成功过.您应该选择其中一个方向.

按住命令并单击UIInterfaceOrIEntation,您将看到可能选项的枚举.

那么你可以测试那些来决定你的YES Scenario.

我原本可能误解了你的问题.您可能一直在说您的应用程序允许轮换.但代码应该禁止这样做.

我以为你说它仍在解雇代码.试图找到是的

有一点需要考虑.可能有多个视图控制器可用.也许你的代码没有被击中.

有几个可能的问题.

>您的代码甚至没有被使用.因为视图被分配为UIVIEwController而不是自定义视图控制器.
>您正在使用代码,但VIEw控制器不是被问及方向的控制器.因此,特定代码没有被击中.
>错误的构建会将错误的程序集放到设备上.

您的解决方案如下.

>确保您的代码是正在分配的代码.您的自定义类可以直接分配.或者xib文件正在膨胀它.打开xib文件后,请查看IDentity Inspector.选择您的VIEw Controller并确保将自定义类设置为您的类类型
>查看层次结构.还有其他视图控制器.也许其中一个人告诉应用它可以自动转向任何方向.
>找到您的“DerivedData”文件夹并将其完全删除.有时这可以从组织者那里获得.其他时候你需要直接删除磁盘.然后清理并再次构建.

另一种解决方案可能就像在Project文件中设置设置一样简单.

从文件浏览器中选择项目文件,您将在摘要中看到iPad和iPod设置.您可以通过“取消按下”按钮来选择要禁用的方向.和任何你没有编码方向的视图控制器.将默认使用这些.

我为这种困惑道歉.

更新

我通常使用此代码来处理我的自动旋转.

它不仅将ipad与其他ios设备区分开来,而且还将请求转发到呈现的控制器上,因此以模态显示的视图可以响应它的需要.

当你不理解时,取向很痛苦:)

// Detect iPad#define IS_IPAD() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad : NO)// Set preferred orIEntation for initial display- (UIInterfaceOrIEntation)preferredInterfaceOrIEntationForPresentation{    if (IS_IPAD()){        return UIInterfaceOrIEntationLandscapeRight;    }    else {        return UIInterfaceOrIEntationPortrait;    }}// Return List of supported orIEntations.- (NSUInteger)supportedInterfaceOrIEntations{    if (self.presentedVIEwController != nil){        return [self.presentedVIEwController supportedInterfaceOrIEntations];    }    else {        if (IS_IPAD()){            return UIInterfaceOrIEntationMaskLandscapeRight;        }        else {            return UIInterfaceOrIEntationMaskAll;        }    }}// Determine iOS 6 autorotation.- (BOol)shouldautorotate{    UIDeviceOrIEntation orIEntation = [UIDevice currentDevice].orIEntation;    // Return yes to allow the device to load initially.    if (orIEntation == UIDeviceOrIEntationUnkNown) return YES;    // Pass iOS 6 Request for orIEntation on to iOS 5 code. (backwards compatible)    BOol result = [self shouldautorotatetoInterfaceOrIEntation:orIEntation];    return result;}// handle iOS 5 OrIEntation as normal- (BOol)shouldautorotatetoInterfaceOrIEntation:(UIInterfaceOrIEntation)interfaceOrIEntation{    // Return YES for supported orIEntations    if (self.presentedVIEwController != nil){        return [self.presentedVIEwController shouldautorotate];    }    else {        if (IS_IPAD()){            return (interfaceOrIEntation == UIInterfaceOrIEntationLandscapeRight);        }        else {            return (interfaceOrIEntation == UIInterfaceOrIEntationPortrait);        }    }}
总结

以上是内存溢出为你收集整理的在iOS5 / 6中自动旋转?全部内容,希望文章能够帮你解决在iOS5 / 6中自动旋转?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存