2012-10-16 54 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或其他類),或者以編程方式進行。主要的是你需要存儲指向其他類實例的指針。 –