Вы можете настроить BOOL, чтобы временно отключить обработку акселерометра, когда вы представляете новый контроллер вида и избегаете вызова self.accelerometer.delegate = nil
Как только модальный переход сделан, вы можете снова включить обработку акселерометром
Редактировать -
Пример:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
if(accelerometerEnabled) {
//... the accelerometer data handling goes here
}
Кроме того, похоже, что я изначально не понял всех вопросов - вам также нужно будет сбросить задержку акселерометра на любой контроллер представления, который вы хотите использовать для обработки данных ускорения. Этот (второй) контроллер представления также должен иметь метод делегата акселерометра - (void).
В качестве альтернативы, вы можете обрабатывать данные ускорения в контроллере корневого представления и делать ваши представления подпредставлениями этого корневого представления. Это было бы чище, так как вам никогда не пришлось бы менять, какой контроллер обрабатывает ускорение.