Cocos2d-x 横屏竖屏异常uncaught exception“UIApplicationInvalidInterfaceOrientation”

在Cocos2d-x横屏游戏中集成社会化分享的时候,会出现异常

*** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES'

大致意思是cocos2d-x游戏设置的可支持屏幕方式找不到需要的方向。这是因为游戏中设置的是只支持横屏方式,但是在RootViewController中shouldAutorotate返回的又是YES,恰好分享的时候弹出的授权页面时竖屏的,所以弹出框自动旋转到竖屏,确又找不到可以支持的竖屏方向,所以抛出异常,程序也卡死了,解决办法如下,仅仅针对于Cocos2d-x代码,其他APP如果出现类似问题,可以参考:

1.AppController.mm加入方法
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationMaskAll;
}
else {
return UIInterfaceOrientationMaskAllButUpsideDown;
}
}
2.RootViewController.mm 加入方法
//For ios6, use supportedInterfaceOrientations & shouldAutorotate instead
- (NSUInteger) supportedInterfaceOrientations{
#ifdef __IPHONE_6_0
return UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskLandscapeLeft;//方向也可以仅定义为横屏中的一个方向
#endif
}
如此就可以了,反正我是解决了~兼容性已测,不存在问题!Enjoy~

0 个评论

要回复文章请先登录注册