Распознавание встряхивания не работает на iOS 4, работает на iOS 5

Я интегрировал в свое приложение распознавание встряхивания. Я поместил его в свой appdelegate, чтобы иметь возможность использовать его во всем приложении. Он отлично работает на iOS 5, но на iOS 4 не работает.

Я использую в своем appdelegate.m следующий код:

- (void)applicationDidBecomeActive:(UIApplication *)application {
   [self becomeFirstResponder];
   ....
}

-(BOOL)canBecomeFirstResponder {
   return YES;
}

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    NSLog(@"motionBegan");
}

-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    NSLog(@"motionEnded");
}

Если я запускаю это в симуляторе iOS5 и активирую жест встряхивания, я получаю сообщения NSLog. Если я запустил его в симуляторе iOS 4.3, он не сработает. То же самое и с реальными устройствами.


person FelixF    schedule 10.12.2011    source источник
comment
у вас такая же проблема, вы ее решили?   -  person Raheel Sadiq    schedule 05.03.2013


Ответы (1)


Я была такая же проблема. Пытаться

- (void)viewDidAppear:(BOOL)animated {
   [self becomeFirstResponder];
}

вместо

- (void)applicationDidBecomeActive:(UIApplication *)application {
   [self becomeFirstResponder];
   ....
}

как в Руководство по обработке событий: события движения. Это сработало для меня.

person user1248465    schedule 04.03.2012