0

我们如何访问其他类的 UIButton。即我们有一个类 A 和按钮 ButtonA 。单击 ButtonA 时,它将在 App Delegate Window 上添加一个 SubView ViewB 。现在,当有人在 ViewB 上单击 ButtonB 时,我想更改 ButtonA 图像?

我怎样才能做到这一点?

B类是单例类

4

2 回答 2

1

有很多方法,但是如果您使用的是 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,否则它们可能会相互锁定(因此它们不会释放)。

于 2012-10-16T08:48:27.153 回答
1

Class A您必须从进行访问Class B,您有很多选择,例如其中一些:

  • 在您的 中声明一个Class A实例变量,并在从Class B创建时分配它。class BClass A
  • Class B在单击时声明要调用的回调块(作为实例变量)Button B
  • Class A听一个NSNotification那个发表的Class B
  • 实施KVOfrom Class AtoClass B's Button B以监听它的变化。
于 2012-10-16T08:49:53.940 回答