UIButton no llama acción en iOS 5 pero funciona en iOS 6

Tengo un UIButton que se carga desde un file xib como una propiedad IBOutlet de un controller de vista. viewDidLoad un selector al button en viewDidLoad de mi controller de vista:

 [_myButton addTarget:self action:@selector(mySelector) forControlEvents:UIControlEventTouchUpInside]; 

En iOS 6 todo funciona, pero cuando corro en el simulador en iOS 5.0, el selector no recibe llamadas. El button se resalta cuando se toca.

Otra cosa a tener en count es que el button está en una UIView que tiene agregado UITapGestureRecognizer . El UITapGestureRecognizer para esta vista se UITapGestureRecognizer en iOS 5.0 cuando se toca el button, (no se llama en iOS 6, donde se llama al selector del button).

No tengo un dispositivo con iOS 5, así que no lo he probado en un dispositivo, solo el simulador.

¿Alguien sabe lo que está sucediendo aquí, y cómo resolverlo?

Has explicado muy bien la causa del problema. En iOS 5, un UITapGestureRecognizer en la vista de supervisión de un button interfiere con la acción del button. En iOS 6, arreglaron esto: presentaron un gesto de evento UIViewRecognizerShouldBegin gestureRecognizerShouldBegin: y un button devuelve automáticamente NO para un reconocedor de gesto de toque adjunto a una supervisión.

Para iOS 5, necesitará usar un método de delegado en el reconocimiento de gestos de pulsación para evitar que se reconozca si la vista pulsada es el button.

En mi caso, también estaba usando un UITapGestureRecognizer general para descartar el keyboard abierto por un campo de text cuando el usuario UITapGestureRecognizer en cualquier parte de la vista principal.

Lo arreglé solo agregando un reconocedor de gestos cuando aparece el keyboard (ver

- (void)keyboardWillShow:(NSNotification *)n o

- (BOOL)textFieldShouldBeginEditing:(VDTextFieldWithError *)textField )

y luego eliminar el reconocimiento de gestos al ocultar el keyboard (eliminando así el selector en el método selector del reconocedor mismo)