【发布时间】:2011-04-18 14:10:29
【问题描述】:
我需要帮助解决问题,但不知道如何解决。基本上我有一个使用加速度计切换到另一个视图的视图,问题是它只能工作一次。当我回到第一个视图时,加速度计将无法再次工作,直到我重建项目。
这是我使用的方法:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
float aX = ABS(acceleration.x);
float aY = ABS(acceleration.y);
float aZ = ABS(acceleration.z);
if(sqrt(aX*aX+aY*aY+aZ*aZ)>1.5f)
{
SecondViewController *screen = [[SecondViewController alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
//screen.words = self.easy;
[self presentModalViewController:screen animated:YES];
[screen release];
self.accelerometer.delegate = nil;
}
我们将不胜感激任何形式的帮助。
【问题讨论】:
-
为什么要设置self.accelerometer.delegate = nil;当您切换到其他视图时?可能是它引起了问题。
-
如果我不设置它,它会给我一个错误,因为我正在尝试在当前转换仍在运行时启动转换,因为正在调用“加速计:didAccelerate”函数每次。
-
感谢您在返回原始视图时再次分配加速度计代表吗?即无论是在 viewDidLoad/viewWillAppear/viewDidAppear 中,你都可以像这样放置 self.accelerometer.delegate = self 。我想这应该适合你。
标签: iphone objective-c xcode uiview accelerometer