我的应用程序正在计算并在图形中显示结果。当设备旋转时,将生成一个新的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;
}