2012-10-16 24 views
0

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

我该怎么做?

B类是单例类

回答

1

你必须要访问Class AClass B,你有很多的选择,比如其中的一些:

  • 中声明你的Class B一个Class A实例变量,并从Class A创建class B时分配给它。
  • 声明Class B中的回调块(作为实例变量),单击Button B时调用该块。
  • Class A收听Class B发布的NSNotification
  • 执行KVOClass AClass B's Button B监听它的变化。
+0

KVO很好用。谢谢 – Mann

1

有吨的方式,但如果你使用IB:

你应该有一个属性在B类,如:

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

在分配在IB所需类的实例就像ohter东西

,并从B类:

self.classAInstance.ButtonB // is accessable 

要让自动完成工作并避免编译错误,您需要在classB中使用#import classA.h

如果你不想使用IB你可以做到这一点编程方式(但你需要存储参照实例的ClassA ClassB中,反之亦然反正),如:

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

不忘记还要去掉这些属性,否则它们可能互相锁定(所以它们不会释放)。

+0

如何从B类访问IBOutlet classAinstance?这两个是分开的类。我如何将iboutlet与不存在的B类连接起来? – Mann

+0

我仍然无法得到什么问题。如果你在IB中没有所需的类,你可以添加它们(从object pallete(你有按钮,标签等)拖动Object,并将它的类更改为ClassA或其他类),或者以编程方式进行。主要的是你需要存储指向其他类实例的指针。 –