我的基於tabBarController的應用程序有幾個選項卡。每個都有一個自定義的viewController類,唯一的區別是實例初始化的方式。有沒有辦法讓界面生成器發送不同的標籤自定義初始化參數?IB中的tabBar viewControllers:發送自定義的init?
目前我在viewWillAppear中進行初始化,但出於一系列原因,在IB中而不是在代碼中執行它是有意義的。
有什麼建議嗎?
感謝, 凱爾索
我的基於tabBarController的應用程序有幾個選項卡。每個都有一個自定義的viewController類,唯一的區別是實例初始化的方式。有沒有辦法讓界面生成器發送不同的標籤自定義初始化參數?IB中的tabBar viewControllers:發送自定義的init?
目前我在viewWillAppear中進行初始化,但出於一系列原因,在IB中而不是在代碼中執行它是有意義的。
有什麼建議嗎?
感謝, 凱爾索
Interface Builder會在程序執行時創建一個未歸檔的對象存檔。你不能真正告訴IB調用特定的方法。
如果您需要在調用viewWillAppear:
之前進行初始化,您可以在awakeFromNib
中這樣做,保證在加載所有對象並將所有插座連接到其目標之後調用該對象。
如果您想盡早進行初始化,您可以通過覆蓋initWithCoder:
(請參閱NSCoding
協議以獲得文檔)來完成此操作。我不知道它是否記錄在任何地方,但是這是指定從歸檔解碼的對象的初始化。
在上述所有內容中,您將無法接收參數,但在代碼中,您應該能夠通過對全局變量的合理使用來訪問任何您需要的參數。您還可以使用[[UIApplication sharedApplication] delegate]
訪問您的應用程序委託對象。
我不認爲有任何辦法改變什麼方法是由IB運行時調用加載時,你的筆尖。如果你描述了你想要完成的事情(也就是爲什麼在viewDidAppear中進行設置不適合你),你可能會得到一個更好的方法來處理你的初始化。
你需要標籤發送不同的參數,或者你只需要自定義初始化方法? – nduplessis 2009-03-06 08:45:54