iOS cocos2d调用识别新方向?

时间:2013-12-06 18:47:57

标签: ios cocos2d-iphone screen-orientation

试图找出如何拨打电话来触发方向通知?我的意思是,我想打电话检查设备的方向是否已经改变(由我动态变量),然后根据该变量重新定位设备?

我试着打电话给:

[appDelegate.navController supportedInterfaceOrientations];

但它不会触发旋转,但是按照我想要的方式工作。

1 个答案:

答案 0 :(得分:0)

我通过这样做解决了我的问题:

AppDelegate.m

-(NSUInteger)supportedInterfaceOrientations
{
    if (!self.lockedToOrientation) {
        // iPhone only
        NSLog(@"default portrait");
        if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ){
            return UIInterfaceOrientationMaskPortrait;
        }

    // iPad only
    return UIInterfaceOrientationMaskPortrait;
}
else {
    NSLog(@"lockedToOrientation");
    return self.lockedToOrientation;
}
}

和HomeScreen.m

AppController *appDelegate = [UIApplication sharedApplication].delegate;

    const UIInterfaceOrientation ORIENTATION = appDelegate.navController.interfaceOrientation;
    appDelegate.navController.lockedToOrientation = ORIENTATION == UIInterfaceOrientationMaskPortrait;

    UIViewController *mVC = [[UIViewController alloc] init];
    [appDelegate.navController presentModalViewController:mVC animated:NO];
    [appDelegate.navController dismissModalViewControllerAnimated:NO];

关于这个过程的想法? Apple会拒绝吗?我听说他们不喜欢改变/强迫定位的一些方法。

干杯。