我在正常的ViewController(MainViewController)中添加了一个UICollectionView
,然后在ViewController中创建了一个UICollectionViewController
子类(CollectionViewController),并将UICollectionView
出口与CollectionViewController对象连接起来< / p>
_collectionViewController = [[CollectionViewController alloc] initWithCollectionViewLayout:_collectionView.collectionViewLayout];
_collectionView.dataSource = _collectionViewController;
_collectionView.delegate = _collectionViewController;
在CollectionViewController中,我设置了一个简单的NSArray对象,并展示了这个对象。这按预期工作。但是,如果我尝试通过self.collectionview从CollectionViewController访问collectionview,我将无法访问此视图。
我不知道我要做什么,也要连接集合视图。
我已经构建了一个示例ios-app,可从以下网址获取:https://github.com/patricks/uicollectionview-problem
UICollectionViewController中的方法 - (void)outputSelectedCell总是显示,没有选择...
我希望你能理解这个问题。
答案 0 :(得分:1)
问题是您有两个不同的集合视图。一个是你在故事板中有一个出口的那个(MainViewController中的_collectionView)。另一个是使用UICollectionViewController自动获取的,这是您在CollectionViewController中记录self.collectionView时获得的。使用UIViewController的集合视图的常用方法是使该控制器成为集合视图的数据源和委托,而不是实例化UICollectionViewController。因此,我将所有集合视图数据源和委托方法从CollectionViewController移动到MainViewController,并删除CollectionViewController - 实际上没有理由拥有该对象。请记住将MainViewController设置为集合视图的委托和数据源(您可以在IB中执行此操作)。您可以在MainViewController的viewDidLoad方法中定义_collectionitems,并将outputSelectedCell中的代码移动到testButtonPressed。