0

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

有没有适当的方法来DeviceOrientationNotification暂时禁用使用的?

-(void)calculate
{

disable DeviceOrientationNotification

...calculation code here

enable DeviceOrientationNotification again

} 

谢谢(不要再打我了,即使这个问题看起来很愚蠢)

4

1 回答 1

1

在 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;
}
于 2013-08-15T20:33:39.007 回答