支持的方向与应用程序没有通用的方向,并且应该Autorotate返回YES'

我的应用程序(iPad; iOS 6)是仅横向应用程序,但是当我尝试使用UIPopoverController显示照片库时,会引发此错误: Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES.我尝试过更改很多代码,但是没有运气。



30秒到达战场
浏览 1842回答 3
3回答

暮色呼如

在IOS6中,您在三个地方都支持界面方向:.plist(或“目标摘要”屏幕)您的UIApplicationDelegate正在显示的UIViewController如果遇到此错误,则很可能是因为您在UIPopover中加载的视图仅支持纵向模式。这可能是由Game Center,iAd或您自己的视图引起的。如果是您自己的视图,则可以通过重写UIViewController上的supportedInterfaceOrientations来修复它:- (NSUInteger) supportedInterfaceOrientations{     //Because your app is only landscape, your view controller for the view in your     // popover needs to support only landscape     return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;}如果不是您自己的视图(例如iPhone上的GameCenter),则需要确保.plist支持纵向模式。您还需要确保UIApplicationDelegate支持以纵向模式显示的视图。您可以通过编辑.plist,然后在UIApplicationDelegate上覆盖supportedInterfaceOrientation来做到这一点:- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;}

翻阅古今

在另一种情况下,可能会出现此错误消息。我花了好几个小时才找到问题。阅读几次后,此线程非常有帮助。如果将主视图控制器旋转为横向,并且您调用一个应以纵向显示的自定义子视图控制器,则在代码如下所示时可能会发生此错误消息:- (NSUInteger)supportedInterfaceOrientations {&nbsp; &nbsp; return UIInterfaceOrientationPortrait;}这里的陷阱是xcode的intellisense建议“ UIInterfaceOrientationPortrait”,我对此并不在意。乍一看,这似乎是正确的。右边的面具叫UIInterfaceOrientationMaskPortrait请注意小前缀“ Mask”,否则您的子视图将最终出现异常和上面提到的错误消息。新的枚举进行了位移。旧的枚举返回无效值!(在UIApplication.h中,您可以看到新的声明:UIInterfaceOrientationMaskPortrait =(1 << UIInterfaceOrientationPortrait))解决方案是:- (BOOL)shouldAutorotate {&nbsp; &nbsp; return YES;}- (NSUInteger)supportedInterfaceOrientations {&nbsp; &nbsp; // ATTENTION! Only return orientation MASK values&nbsp; &nbsp; // return UIInterfaceOrientationPortrait;&nbsp; &nbsp; return UIInterfaceOrientationMaskPortrait;}&nbsp;快速使用override func shouldAutorotate() -> Bool {&nbsp; &nbsp; return true}override func supportedInterfaceOrientations() -> Int {&nbsp; &nbsp; return Int(UIInterfaceOrientationMask.Portrait.rawValue)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS