2009-06-22 4 views
3

私はかなりシンプルなUIViewControllerを持っています。これは、UIImageViewだけを含むInteraface Builderで作成したビューで初期化されます。ユーザーが画面に触れると、UIViewControllerのtouchesBeganメッセージが呼び出されます。だから、私はそれをオーバーライドし、いくつかのログを追加しましたが、何も起こっていません。touchesBeganメッセージを受け取っていないUIViewController

UIViewControllerがUIResponderを継承して以来、「特別」なことは何もしていません。これはすぐに使えると思っています。私はUIImageViewsがデフォルトで無効になっているユーザーインタラクションを持っていることを理解しているので、InterfaceBuilderとUIViewControllerのviewDidLoadメソッド(私はUIImageViewをIBOutletに結び付けています)で有効にしました。また、Interface Builderの親ビューでuserInteractionが有効になっていることを確認しています。

ここで私が忘れていることは何ですか?

答えて

3

OK、私はダミーです。それはうまく動作します。問題は、私はUIViewControllerにリリースメッセージを送っていたことに気づいていませんでした。だから問題を引き起こしていた。

0

あなたの問題が何であるかは言うまでもありませんが、それを上書きすることが何を意味するのか分かりません。

touchesBeganイベントをInterface BuilderのIBActionに接続していることを確認しますか?

イベントを処理するためにIBAction関数を作成し、偶数をIBActionに明示的に接続する必要があります。単にメソッドをオーバーライドするだけでは簡単ではありません。

IBOutletに関連付けられたビューを持っているにもかかわらず、IBActionを使用してイベントを接続する必要があります。そうしないと、これらのイベントは発生しません。

0

最初の回答は無視してください。実際、カスタムビューでメソッドをオーバーライドするのと同じくらい簡単です。 touchesBeganを受け取らない最も一般的な理由は、実装されていないcanBecomeFirstResponderメソッドです。これはIB接続ではなく、タッチ操作の標準的な方法です。

関連する問題