我們如何訪問其他類的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