2009-03-06 50 views
3

我的基於tabBarController的應用程序有幾個選項卡。每個都有一個自定義的viewController類,唯一的區別是實例初始化的方式。有沒有辦法讓界面生成器發送不同的標籤自定義初始化參數?IB中的tabBar viewControllers:發送自定義的init?

目前我在viewWillAppear中進行初始化,但出於一系列原因,在IB中而不是在代碼中執行它是有意義的。

有什麼建議嗎?

感謝, 凱爾索

+0

你需要標籤發送不同的參數,或者你只需​​要自定義初始化方法? – nduplessis 2009-03-06 08:45:54

回答

3

Interface Builder會在程序執行時創建一個未歸檔的對象存檔。你不能真正告訴IB調用特定的方法。

如果您需要在調用viewWillAppear:之前進行初始化,您可以在awakeFromNib中這樣做,保證在加載所有對象並將所有插座連接到其目標之後調用該對象。

如果您想盡早進行初始化,您可以通過覆蓋initWithCoder:(請參閱NSCoding協議以獲得文檔)來完成此操作。我不知道它是否記錄在任何地方,但是這是指定從歸檔解碼的對象的初始化。

在上述所有內容中,您將無法接收參數,但在代碼中,您應該能夠通過對全局變量的合理使用來訪問任何您需要的參數。您還可以使用[[UIApplication sharedApplication] delegate]訪問您的應用程序委託對象。

0

我不認爲有任何辦法改變什麼方法是由IB運行時調用加載時,你的筆尖。如果你描述了你想要完成的事情(也就是爲什麼在viewDidAppear中進行設置不適合你),你可能會得到一個更好的方法來處理你的初始化。