如何从委托和数据源类访问集合视图?

问题描述:

我有一个包含集合视图的视图控制器。 集合视图的委托和数据源是一个自定义类,我无法从该类访问集合视图本身。该类包括UICollectionViewFlowLayout,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource。如何从委托和数据源类访问集合视图?

我试图通过键入self.collectionView哪些不起作用访问集合视图,说:“致命错误:意外地发现零,而解包可选值(lldb)”。

试图设置一个静态的让变量指向包含集合视图的视图控制器,但它也没有工作。

+1

你应该保持的委托和数据源方法在您的视图 - 控制,但让他们的所有数据中的其他类,并在您的ViewController委托方法 – Tj3n

+0

返回它在你的故事板,你链接您的收藏欣赏到'的CollectionView '你提到了吗?这个变量应该被标记为'@ IBOutlet'。 –

代表和数据源是dataprovider,不是更多。将它们提取到自己的类中是一个非常好的主意(面向对象的设计)。但是这些类不应该实现超过协议的api,并且可能为它们提供一些私人帮助函数。每个协议函数通过给出参考作为第一个参数来提供对您的集合视图的访问。

例如

func numberOfSections(in: UICollectionView)