2017-06-05 16 views
0

我在YouTube上觀看了多個視頻,併購買了兩本有解釋的書(O'Reilly)。是否在不同的視圖控制器中使用nib/xib文件?

看起來像一個筆尖文件總是在一個視圖控制器中使用。 文件所有者通常是將實現該筆尖的視圖控制器。

我找不到在多個視圖控制器中使用nib文件的示例。

我遇到過幾篇關於這方面的文章,但帖子很老,很多人留下警告。

我最初的使用nib文件的願望是因爲我有一個table view cell在多個tableViewControllers中使用。 tableViewCell在Storyboard中的一個TableViewControllers中原型化。

我認爲創建一個筆尖將從一個特定的TableViewController解耦該單元格。

我不能說我真的明白一個nib文件的目的。 它看起來像故事板非常相似。

我最終在代碼中創建了tableViewCell,並在整個項目中重用它。

所以我的問題是什麼是用於筆尖文件?

它們是否用於從特定的視圖控制器中分離視圖?

他們是用來避免一個ViewController內的重複?

任何洞察將有所幫助。

回答

0

是的,你可以在應用程序中的許多地方重複使用xibs。

Xib早於故事板並充當工廠,用於創建在Interface Builder中配置的UIView類的實例。使用它們來定義UIViewControllerview及其子視圖的佈局和屬性是一種常見用例,但當然不是唯一的用例。

xib可能被重複使用的常見地方是當它包含表或集合視圖單元格時。然後,您可以使用register(_ nib: UINib?, forCellWithReuseIdentifier identifier: String)在多個表或集合視圖中註冊該xib,以便在需要時加載單元的實例。

+0

在您提供的示例中,我們會將'UICollectionViewController'設置爲nib文件所有者在interfaceBuilder中輸入?或者將它作爲默認的'NSObject'? – 3366784

+0

在這種情況下,沒有理由更改文件所有者。在xib中設置的所有者實際上只是Interface Builder的一個提示,即當對象傳遞到https://developer.apple.com/documentation/uikit/uinib/1614137時,可以安全地將哪些屬性和選擇器設置爲出口和動作-instantiate – Jonah

相關問題