0

この質問は私の問題を説明するのに最も近づきましたが、一般的なプロセスで何かが欠けていて、答えは最終的に「気にしないで、説明されていない別の解決策を見つけました」になります。

私の場合、ナビゲーションバーとそのコントローラーを備えたXIBがあります。クラスフィールドには、カスタムクラス名を入力しました。これはXIBを示すスクリーンショットです。これは、比較的単純で簡単な設定である必要があるためです...

ナビゲーションバーとそのコントローラー。

私が欲しいのは(最初のリンクのように)touchesEndedイベントを起動して、何かを実行できるようにすることです。これは「ビュー」で機能します。プログラムでイベントに書き込み、ブレークポイントを設定して、ブレークポイントがヒットするのを確認できます。ただし、私の上位レベルの目標は、その時点で新しいビューをアプリにプッシュすることです。これは、ビューの機能では実行できないことであり、ビューにアクセスできないため、とにかく実行できません。ナビゲーションコントローラー(コントローラーを取得するためにいくつかのトリックを実行しない限り、これをきれいに実行したい)。

ビューに対してプログラムで機能しますが、touchesEndedイベントはナビゲーションビューのコントローラーに対してヒットしません。下の画像に示すように、私はそれを代理人に設定しました。これはおそらく私がしなければならないことの一部にすぎないと思います。

ナビゲーションバーのデリゲートを設定しました

デリゲートを設定し、touchesEndedイベントがビューによってヒットされていることを確認したので、ナビゲーションバーのビューコントローラーがtouchesEndedイベントを取得しないのはなぜですか?そのtouchsEndedイベントがヒットしているのを見たので、私は間違っていて、代わりにナビゲーションバーのビューから新しいビューをプッシュする方法を考え出す必要がありますか?ナビゲーションバービューのコントローラーで処理する必要があるように見えますが、そのコントローラーのtouchesEndedイベントヒットを取得できません。

ありがとう!

4

2 に答える 2

1

次に、UINavigationBarをオーバーライドし、becomeFirstResponderをオーバーライドして、YESを返す必要があります。

于 2013-01-02T19:42:14.720 に答える
1

投稿からは明らかではありませんが、アプリにナビゲーションバーを明示的に追加しているようですが、本当ですか?コントローラがナビゲーションコントローラに組み込まれている場合は、それを行う必要はありません。ナビゲーションバーにビューを追加したり、UIImageビューをサブビューとして追加したりできます。ユーザーインタラクションをオンに設定し、タップジェスチャレコグナイザーを画像ビューに追加すると、必要な効果を得ることができるはずです。

于 2013-01-02T20:53:10.227 に答える