2

質問

.xib と .xib がありUIButtonます。これは、File's Owner の メソッド へUIButtonの接続を持っています。Touch Up Inside- (IBAction)play:(id)sender

第1世代のiPadで実行すると、UIButtonタップすると強調表示された状態になりますが、接続されたメソッドは呼び出されません。メソッドの最初の行にブレークポイントを設定しましたが、ヒットしません。

第 2 世代の iPad でアプリを実行すると、すべて正常に動作します。

私はこの問題を盲目的に少しハッキングしましたが、他の誰かが何が起こっているのかについての洞察を持っていることを願っています. 私が見落としているものは何か分かりますか?

更新、部分的な解決

Stavash の助けのおかげで、問題の原因はボタンを含むビューに添付されたジェスチャ レコグナイザーであることがわかりました。

ジェスチャ認識エンジンを削除すると、すべてが機能します。

を使用して、ボタンがタップされたときにジェスチャ認識エンジンが応答しないようにするソリューションを示す関連する質問が表示されます。UIGestureRecognizerDelegate

ただし、NOボタンがタップされるとデリゲート メソッドが返されますが、Touch Up Insideイベントはまだ発生していないようです。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ((touch.view == self.playButton)) {
        return NO;
    }
    return YES;
}

上記のリンク先の関連する質問から取得したコード

明日、もう少し実験して、どこが間違っていたかがわかったら、もう一度投稿します。

4

1 に答える 1

1

(奇妙に思えるかもしれませんが) その View Controller にアクティブな UITapGestureRecognizer があり、iOS のバージョンごとに異なる反応を示す可能性があります。ジェスチャ レコグナイザのアクティブなインスタンスをキャンセルして、動作するかどうかを確認してください。

于 2013-01-31T20:47:30.763 に答える