我们如何访问其他类的UIButton。即我们有一个A类和ButtonA按钮。当ButtonA单击时,它将在App Delegate窗口上添加一个SubView ViewB。现在,当有人点击ViewB上的ButtonB时,我想更改ButtonA图像?访问不同类的ios的IBOoutlet UIButton
我该怎么做?
B类是单例类
我们如何访问其他类的UIButton。即我们有一个A类和ButtonA按钮。当ButtonA单击时,它将在App Delegate窗口上添加一个SubView ViewB。现在,当有人点击ViewB上的ButtonB时,我想更改ButtonA图像?访问不同类的ios的IBOoutlet UIButton
我该怎么做?
B类是单例类
你必须要访问Class A
从Class B
,你有很多的选择,比如其中的一些:
Class B
一个Class A
实例变量,并从Class A
创建class B
时分配给它。Class B
中的回调块(作为实例变量),单击Button B
时调用该块。Class A
收听Class B
发布的NSNotification
。KVO
从Class A
到Class B's Button B
监听它的变化。有吨的方式,但如果你使用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;
不忘记还要去掉这些属性,否则它们可能互相锁定(所以它们不会释放)。
如何从B类访问IBOutlet classAinstance?这两个是分开的类。我如何将iboutlet与不存在的B类连接起来? – Mann
我仍然无法得到什么问题。如果你在IB中没有所需的类,你可以添加它们(从object pallete(你有按钮,标签等)拖动Object,并将它的类更改为ClassA或其他类),或者以编程方式进行。主要的是你需要存储指向其他类实例的指针。 –
KVO很好用。谢谢 – Mann