他のクラスの UIButton にアクセスするにはどうすればよいですか。つまり、クラス A と Button ButtonA があります。ButtonA をクリックすると、 App Delegate Window に SubView ViewB が追加されます。誰かが ViewB の ButtonB をクリックすると、ButtonA の画像を変更したいですか?
どうやってやるの?
クラス B はシングルトン クラスです。
他のクラスの UIButton にアクセスするにはどうすればよいですか。つまり、クラス A と Button ButtonA があります。ButtonA をクリックすると、 App Delegate Window に SubView ViewB が追加されます。誰かが ViewB の ButtonB をクリックすると、ButtonA の画像を変更したいですか?
どうやってやるの?
クラス B はシングルトン クラスです。
Class A
からアクセスできるようにするClass B
必要があります。たとえば、いくつかのオプションがあります。
Class A
でインスタンス変数を宣言し、からClass B
作成するときに割り当てます。class B
Class A
Class B
されたときに呼び出されるコールバックブロック(インスタンス変数として)を宣言します。Button B
Class A
たものを聞くから。NSNotification
Class B
KVO
fromClass A
を実装してClass B's Button B
、変更をリッスンします。方法はたくさんありますが、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 にすることも忘れないでください。そうしないと、互いにロックする可能性があります(したがって、ロックが解除されません)。