2011-06-15 49 views
0

如果有自定義UIButton類,並且想在初始化後訪問其titleLabel插座。通常人們會在viewDidLoad方法中這樣做,但這隻適用於Controller類。在初始化後,你如何直接訪問基類的任何插座?初始化後在自定義UIButton類中訪問插座

這裏一點點的代碼片段,因爲大多數時候更清楚之後

- (id) initWithCoder:(NSCoder *)aDecoder { 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     // Here the outlet is still 'nil' 
    } 
    return self; 
} 

- (void) viewDidLoad { 
    // Not usable with UIControls 
} 

回答

2

實現你的UIButton-awakeFromNib

the official documentation

筆尖裝載基礎設施發送一個awakeFromNib消息從筆尖檔案重建每個對象,但只有在歸檔中的所有對象已經被加載和初始化。當一個對象收到一個awakeFromNib消息時,它保證已經建立了所有的出口和動作連接。

您必須調用awakeFromNib的超級實現來爲父類提供執行它們所需的任何額外初始化的機會。儘管此方法的默認實現不做任何事情,但許多UIKit類都提供了非空實現。您可以在自己的awakeFromNib方法中的任何時候調用超級實現。

+0

我不明白爲什麼我錯過了這個......這讓我瘋狂。感謝這個答案!但是看起來'titleLabel'甚至不是一個出口,所以這一切都不需要,我收到的錯誤確實來自代碼中的另一點。 – CipherCom 2011-06-15 13:16:51