- (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中自动旋转?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)