2013-08-30 99 views
12

對不起,也許noob問題,傢伙。我是iOS開發新手。如何創建在XIB中定義的視圖控制器?

如何創建在XIB中定義的視圖控制器?

當您通過「新建文件」在Xcode中創建從UIViewController繼承的新類並標記with XIB複選框時,它會創建沒有viewController元素的xib文件。而是它有placeholder它指向UIViewController,它在代碼中定義爲

但我看到你可以在Interface Builder中創建控制器本身,併爲它指定customClass。

不幸的是,它不適用於我。運行時出現loaded the "EmbeddedViewController" nib but the view outlet was not set錯誤。但我相信view屬性必須由資源加載器自動設置,因爲一切都是通過XIB定義的。它適用於TableView及其單元格。

請問你能舉個例子怎麼做嗎?

我創建的樣本項目:https://github.com/cppexpert/SampleWithNib

有問題的控制器是EmbeddedViewController

回答

4

原來這些控件存在於Storyboard項目的IB中。

+0

這是真正的答案。你得出了正確的結論,其他人只是誤解了這個問題。 – SuitedSloth

2

當你創建一個視圖控制器通過「新文件」廈門國際銀行,Xcode中產生UIView,並將其與view出口連接自動。好像你在Xcode生成xib文件後改變了一些東西。在這種情況下,您需要手動將視圖連接到view插座。

+0

是的,這工作。這將是標準的XIB Xcode生成的。但我想知道如何在不使用文件所有者的情況下做到這一點,並在XIB中使用'viewController'元素? – expert

+0

你不需要'viewController'元素。在大多數情況下,文件的所有者是視圖控制器。 – cahn

+1

如果不需要,爲什麼我可以在Interface Builder中創建'viewController'然後? :) – expert

7

每UIViewController中

每個XIB有文件的所有者對象爲你設置UIViewController類有一個創建廈門國際銀行。單擊文件的所有者,然後選擇EmbeddedViewController上的類

然後將主UIView不UIViewController類拖到那裏,然後將該視圖連接到文件的所有者作爲視圖。 UIViewController只是用於拖動到StoryBoard基礎項目。

https://github.com/lequysang/gitfiles02/blob/master/SampleWithNib-master.zip

+0

謝謝!在您的文件版本中,EmbeddedViewController.xib中的viewController元素的目的是什麼? – expert

+0

我忘了刪除。只需將其刪除 –

+0

但是之後我會得到很多Xcode通過模板生成的內容。 – expert

0

如果您在創建一個xib.set新的視圖文件的所有者到您的自定義類。 或者你只是想創建一個視圖。 然後

NSArray* test1 = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil]; 
self.myViewFromNib = [test1 objectAtIndex:0]; 

哪裏myViewFromNib是您的視圖對象的「查看」是你的筆尖的名字。

+0

問題是關於視圖控制器,而不是視圖。 –

相關問題