2017-06-05 43 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

相关问题