2

この質問は、次の続きです。

UITouch - イベントが応答しない

私はさらに調査を行い、問題が何であるかを知っていますが、それを解決する方法や、解決できるかどうかさえわかりません。私は新しいアプローチを取らなければならないかもしれません。

私は RootViewController を持っており、これから次のコードを使用して 2 番目の ViewController をロードします。

[self presentModalViewController:newWorkoutViewController animated:YES];

次に、NewWorkoutViewController に次のコードを配置します。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"New Workout Screen tapped");
}

このメソッドは実行されていません。これは、モーダル ビューであるためだと思います。モーダル ビューで画面上のタップを検出する方法はありますか。

ありがとうスティーブン

4

3 に答える 3

2

ビューではなく、View Controller で関連するメソッドを定義します。

于 2010-07-13T18:13:50.440 に答える
1

あなたの仮定は正しくありません。View Controllerをモーダルに表示することは、それとは何の関係もありません。タッチはモーダル ビューでも他のビューと同じように機能します。おそらく、ビューでユーザー操作が有効になっていません。セカンダリ ビュー コントローラーはどのように作成しましたか?

于 2010-07-13T18:20:53.367 に答える
1

イベントは、ビューにイベントを受け取るコントロールがない場合にのみ、ViewController に送信されます。たとえば、ビューにボタンがあり、そのボタンに触れると、ViewController ではなくボタンが touch イベントを取得します。

OS は、pointInside:withEvent: メソッドを使用してイベントの送信先を決定し、次にhitTest:withEventを呼び出し ます。これらをビューでオーバーライドして、どのオブジェクトがイベントを取得しているかを確認できます。

また、非表示のビュー、ユーザー操作が無効になっているビュー、アルファ レベルが 0.1 未満のビューは、hitTest:withEvent によって無視されます。

于 2010-07-13T18:21:09.077 に答える