我们如何访问其他类的 UIButton。即我们有一个类 A 和按钮 ButtonA 。单击 ButtonA 时,它将在 App Delegate Window 上添加一个 SubView ViewB 。现在,当有人在 ViewB 上单击 ButtonB 时,我想更改 ButtonA 图像?
我怎样才能做到这一点?
B类是单例类
我们如何访问其他类的 UIButton。即我们有一个类 A 和按钮 ButtonA 。单击 ButtonA 时,它将在 App Delegate Window 上添加一个 SubView ViewB 。现在,当有人在 ViewB 上单击 ButtonB 时,我想更改 ButtonA 图像?
我怎样才能做到这一点?
B类是单例类
有很多方法,但是如果您使用的是 IB:
您应该在 B 类中拥有一个属性,例如:
@property (nonatomic, retain) IBOutlet UIViewController* classAInstance;
在 IB 中将实例分配给所需的类,就像其他东西一样
从B类:
self.classAInstance.ButtonB // is accessable
要使自动完成工作并避免编译错误,您需要#import classA.h
在 classB 中。
如果您不想使用 IB,您可以通过编程方式执行此操作(但您需要在 ClassB 中存储对 ClassA 实例的引用,反之亦然),例如:
classB.classAInstance = classAInstance;
classA.classBInstance = classBInstance;
不要忘记也将属性设为 nil,否则它们可能会相互锁定(因此它们不会释放)。
Class A
您必须从进行访问Class B
,您有很多选择,例如其中一些:
Class A
实例变量,并在从Class B
创建时分配它。class B
Class A
Class B
在单击时声明要调用的回调块(作为实例变量)Button B
。Class A
听一个NSNotification
那个发表的Class B
。KVO
from Class A
toClass B's Button B
以监听它的变化。