我有一个基于导航的应用程序,我想使用加速度计来检测抖动并导致滚动视图滚动到下一页。我已将加速度计代码添加到我的scrollView的视图控制器中,并且效果很好;摇动调用我的页面更改方法。但是当我从导航堆栈中卸载scrollViewController时,应用程序崩溃了。
我在scrollViewController的viewDidLoad方法中设置加速度计,并响应加速度计中的抖动:didAccelerate:delegate方法。
当scrollViewController被取消分配时,应用程序崩溃。
我错过了什么?
由于
答案 0 :(得分:3)
在另一个帖子中找到答案:
How do you release a shared accelerator instance on the iPhone?
当我的scrollView取消分配时,我需要将加速度计的委托设置为nil。加速度计是一个单例,它保留了对它的委托的引用,在本例中是我的scrollViewController。当我的scrollViewController弹出堆栈时,引用被挂起,崩溃了他的应用程序。
感谢Phil Nash的回答!
答案 1 :(得分:0)
加速度计的更新率是多少?如果它太高,我听说过发生了奇怪的事情。
答案 2 :(得分:0)
我无法发表评论,所以我不得不在答案中发布。你可以显示你的新视图页面加载方式。正如我所理解的那样,一旦你动摇它,它就会转向一个新观点。您能否显示对新视图的呼叫。
答案 3 :(得分:0)
简单:通过设置委托方法,您告诉另一个对象(加速度计)滚动视图存在。
但是当它不复存在时你是否告诉它,所以它不能向它发送任何消息?
我猜不是。你需要再次设置委托,这次是零。