В конце концов я дошел до этого (после того, как вначале возился с идеей перехода на использование метода UIAccelerator для доступа к акселерометру, но затем обнаружил, что это не рекомендуется в будущих выпусках iOS (см. Раздел «Типы событий движения») здесь )
Обычно код в блоке, выполняемый при обнаружении движения, может не выполняться в главном потоке, что может вызвать проблемы, особенно с кодом, связанным с UIView.
Чтобы убедиться, что код выполняется в главном потоке, нужно вызвать:
[self performSelectorOnMainThread:@selector(test) withObject:nil waitUntilDone:false];
вместо обычного:
[self performSelector:@selector(test) withObject:nil afterDelay:1.0];
О, я нашел решение вgoogle books отрывок из превосходно выглядящего Начало разработки для iPhone 4: изучение IOS SDK . Надеемся, что это может быть полезным для людей, борющихся в той же области, не стесняйтесь комментировать, если вам нужна дополнительная информация/ код.