4

私は持っていUIBarButtonItemます。処理できないメッセージを受信したときに、そのメッセージを特定のView Controllerに転送したい。

バー ボタン項目のメソッドを使用してこれを達成できるのではないかと考えforwardingTargetForSelector:ましたが、タイプ のオブジェクトにはそのようなプロパティが見つからないようですUIBarButtonItem。(用語のポイント: それforwardingTargetForSelector:はプライベート プロパティという意味ですか? 編集: ちょっと待って、私は混乱していると思います... 最後にコロンが付いているメソッドはプロパティではありません... したがって、メソッドを公開することはできます (のように) getter/setter) どのパラメータが渡されますか?)

の値を設定するには、forwardingTargetForSelector:設定したいオブジェクトの .m ファイル内から行う必要があるということですか? つまり、UIBarButtonItem をサブクラス化する必要があるということでしょうか?

もしそうなら、なぜこれが NSObjects のパブリック プロパティではないのでしょうか?

さらに、できればサブクラス化を回避して、転送の目標を達成するための最良の方法は何ですか?

追加情報:

これはすべて、同じボタンが押されたさまざまなインスタンスに対応して、1 つのアクションを再利用したいという私の傾向に起因しています。アクションは現在、デリゲートに含まれており (さまざまな VC で使用される [ほぼ] 同じアクションをどのように実装する必要がありますか? (回答: カテゴリを使用)を参照)、インスタンス化したビュー コントローラーに presentViewController メッセージを送信する必要があるという点だけが異なります。アクションを送信したボタン。したがって、アクションでは、presentViewController メッセージをsenderボタンのインスタンスである に送信できます。そのメッセージを、ボタンのインスタンスを作成したビュー コントローラーに転送できるようにしたいと考えています。それぞれのView Controllerでインスタンス化された直後に、各ボタンの転送プロパティを設定します。

質問を短くするために「なぜ」を避けたかったのですが、それで終わりです。

4

1 に答える 1