ボタンのように動作しない Nib ベースのビューにボタンがあります (ターゲット メソッドが呼び出されることはありません)。ボタンを動的に追加しようとしましたが、役に立ちません。
アプリの構造を説明しようとします (この問題の原因であると思われるため)。適切なデザイン パターンを使用していない可能性があります。
ビューAはコントローラーACに関連付けられています。(ルートコントローラーの nib からロードされ、ナビゲーションコントローラーにプッシュされます。)
ビュー A には複数のサブビューが埋め込まれています。それらの 1 つを A' と呼びましょう。
AC::viewDidLoad メソッドでは:
3 つの viewController a、b、cを AC のメンバー変数にロードします。
アプリの設定に応じて、これらのコントローラーの 1 つのビューを A' のサブビューとして追加します。
基本的に AC::viewDidLoad メソッドで:
[A' addSubView:(a.view)];
これで、a.view に (タグ付けされた) ボタンができました。そのタグを検索します。ターゲットメソッドを動的に追加します。この時点で、a.view は A' のサブビューとして表示され、ボタンも表示されます。偉大な。
しかし、タッチ インタラクションが発生しないか、タッチ アクションが私の方法以外の誰かによって消費されます。
私は多くのバリエーションを試しましたが、実行が私の方法に到達することはありません。すべての touchUpEvents にターゲットを追加してみました。なし。有効なイベントのコントロール値を確認しましたが、正しいです。そのボタンはどういうわけか単に無効になっています。ビューが 1 つの単純なアプリを作成し、同じことを行ったところ、うまくいきました。ですから、複数のピースを組み合わせる方法と関係があると思います。
何か案は?
Spy++ のようなものがあれば、メッセージ キューが表示され、アプリケーションの代わりに誰がこのメッセージを消費しているかを確認したり、クラス オブジェクトを確認したりできればと思います。私はこのプラットフォームの初心者です。 これに関する私の以前の闘いは、このスレッドにあります。