2017-09-14 50 views
-2

我想調用awakeFromNib,當tableView重載它的單元格時,重新執行我在那裏執行的代碼並新加載單元格內的pageViewController,這可能嗎?我該如何回憶awakeFromNib

+5

不是你不應該叫喚醒從手動的筆尖,你可以使用prepareToReuse方法的單元格 –

+0

也許只是把'awakeFromNib'的代碼運行並再次執行函數? – Raymond

回答

1

我相信awakeFromNib在從nib文件初始化時會在對象上調用。所以你不能手動調用它。

從nib文件讀取此對象加載過程的thread

0

見蘋果文檔約awakeFromNIb方法

畢竟對象已經被實例化和初始化, 筆尖加載代碼重新建立了 出口和動作連接的所有這些對象。然後它調用 對象的awakeFromNib方法。

因此,手動調用它看起來不可能。此外,我建議你將awakeFromNib中的代碼行放入單獨的方法中並調用該方法。它會爲你工作。

0

正如其他受訪者指出的那樣,您不應該自己調用任何「生命週期」方法。然而,沒有理由在地球上爲什麼你不能這樣做:

override func awakeFromNib() { 
    super.awakeFromNib() 
    self.doSetupStuffINeedToRepeat() 
} 

func doSetupStuffINeedToRepeat() { 
    //... 
} 

然後,你可以簡單地調用你想要doSetupStuffINeedToRepeat()隨時隨地。你不應該自己調用awakeFromNib的原因是,如果做得好,應該調用super.awakeFromNib,並且在執行過程中這樣做可能會(真的)會把事情弄糟...