0

他のクラスの UIButton にアクセスするにはどうすればよいですか。つまり、クラス A と Button ButtonA があります。ButtonA をクリックすると、 App Delegate Window に SubView ViewB が追加されます。誰かが ViewB の ButtonB をクリックすると、ButtonA の画像を変更したいですか?

どうやってやるの?

クラス B はシングルトン クラスです。

4

2 に答える 2

1

Class AからアクセスできるようにするClass B必要があります。たとえば、いくつかのオプションがあります。

  • Class Aでインスタンス変数を宣言し、からClass B作成するときに割り当てます。class BClass A
  • クリックClass Bされたときに呼び出されるコールバックブロック(インスタンス変数として)を宣言します。Button B
  • によって投稿されClass Aたものを聞くから。NSNotificationClass B
  • KVOfromClass Aを実装してClass B's Button B、変更をリッスンします。
于 2012-10-16T08:49:53.940 に答える
1

方法はたくさんありますが、IB を使用している場合:

次のようなクラス B のプロパティが必要です。

@property (nonatomic, retain) IBOutlet UIViewController* classAInstance;

他のものと同じように、IBで目的のクラスにインスタンスを割り当てます

そしてクラスBから:

self.classAInstance.ButtonB // is accessable

オートコンプリートを機能させ、コンパイル エラーを回避するに#import classA.hは、classB で行う必要があります。

IB を使用したくない場合は、プログラムでこれを行うことができます (ただし、ClassA インスタンスへの参照を ClassB に格納する必要があり、その逆も同様です)。

classB.classAInstance = classAInstance;
classA.classBInstance = classBInstance;

プロパティを nil にすることも忘れないでください。そうしないと、互いにロックする可能性があります(したがって、ロックが解除されません)。

于 2012-10-16T08:48:27.153 に答える