2013-04-26 81 views
2

這是處理:我使用DEFacebookComposeViewController這是UIViewController的自定義子類。這個小類使用xib來設置用戶界面。子類自定義UIViewController(與xib)以添加其他行爲

現在我想添加一些額外的GUI元素到DEFacebookComposeViewController所以我想我會創建一個名爲MySubclassDEFacebookComposeViewController : DEFacebookComposeViewController類似的子類並創建一個xib。

但是,xib MySubclassDEFacebookComposeViewController.xib未顯示來自DEFacebookComposeViewController.xib的任何GUI元素,我認爲它會這樣做,因爲它是該類的子類。

所以基本上我只是想知道什麼是正確的方法添加新的元素到子類UIViewControllerxib

回答

2

複製DEFacebookComposeViewController.xib並將其重命名爲MySubclassDEFacebookComposeViewController.xib並將其編輯爲您的喜好。

一個UIViewController將尋找默認情況下具有相同名稱的筆尖/廈門國際銀行(即使沒有在最後的控制器部分)創建時

從UIViewController中的實況:

如果使用一個用於存儲視圖控制器視圖的筆尖文件,建議您在 初始化視圖控制器時明確指定該筆尖文件。但是,如果您未指定 筆尖名稱,並且不覆蓋自定義 子類中的loadView方法,則視圖控制器將使用其他 方法搜索筆尖文件。具體而言,它會查找名稱爲 (不帶.nib擴展名)的適當名稱的nib文件,並在請求查看 時加載該nib文件。具體而言,它看起來(按順序),用於與下列名稱 一個nib文件:

如果視圖控制器類名以單詞「控制器」結尾,如在MyViewController ,它會尋找一個筆尖的文件,其名稱與 類名稱匹配,但沒有「控制器」一詞,如在MyView.nib中。它看起來爲 ,其名稱與視圖控制器 類的名稱相匹配。例如,如果類名稱是MyViewController,它看起來爲 爲MyViewController.nib文件。

因此,您需要指定要使用的筆尖或在視圖控制器之後命名它。既然你想添加/修改舊筆尖,你需要一個副本。

這是假設DEFacebookComposeViewController.xib默認沒有任何IBOutlets。如果有,您可以修改viewDidLoad中的現有筆尖。無論是否存在IBOutlets,視圖加載後都可以添加更多的子視圖。

+0

好吧,你是什麼意思「......假設DEFshootingComposeViewController.xib默認沒有任何IBOutlets。」 xib是否具有'IBOutlets'的用途,即將您的.h/.m文件與Interface Builder連接起來?最初的'DEFshootingComposeViewController.m'充滿了'IBOutlets'。 – 2013-04-26 13:44:33

+0

可能沒有必要用IBOutlets連接所有東西 - 雖然它不常見。如果網點「已滿」,請使用網點通過代碼重新配置現有視圖以滿足您的喜好,並通過代碼添加新的子視圖。 – Pfitz 2013-04-26 14:19:03

相關問題