我的应用程序正在计算并在图形中显示结果。当设备旋转时,将生成一个新的UIViewController,以横向显示该图。因此,必要的参数将传递到新的ViewController来创建图形。
当计算仍在运行时,当设备变为横向时,应用程序崩溃。

是否有适当的方法暂时禁用使用的DeviceOrientationNotification

-(void)calculate
{

disable DeviceOrientationNotification

...calculation code here

enable DeviceOrientationNotification again

}


谢谢
(即使问题看起来很愚蠢,也不要再殴打我)

最佳答案

在iOS 5和6中,UIViewcontrollers上有一个用于自动旋转的回调。我只是在开始计算时设置一个标志,不应自动旋转并在完成后将其重新设置。

//somewhere in .h or class extension or simple member variable
@property (nonatomic) BOOL shouldRotate;

// iOS 6
- (BOOL)shouldAutorotate {
    return self.shouldRotate;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;//Return what is supported
}

// pre-iOS 6 support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

    return self.shouldRotate && //other interface check;
}

-(void)calculate{
     self.shouldRotate = NO;
     //do calculation
     self.shouldRotate = YES;
}

10-08 15:43