1

我在UICollectionView普通的 ViewController (MainViewController) 中添加了一个,然后UICollectionViewController在 ViewController 中创建了一个子类 (CollectionViewController) 并将UICollectionView插座与 CollectionViewController 对象连接

_collectionViewController = [[CollectionViewController alloc] initWithCollectionViewLayout:_collectionView.collectionViewLayout];

_collectionView.dataSource = _collectionViewController;
_collectionView.delegate = _collectionViewController;

在 CollectionViewController 中,我设置了一个简单的 NSArray 对象,并展示了这个对象。这按预期工作。但是,如果我尝试通过 self.collectionview 从 CollectionViewController 访问 collectionview,我将无法访问这个。

我不知道我必须做什么才能连接collectionview。

我已经构建了一个示例 ios-app,它可以在以下位置获得:https ://github.com/patricks/uicollectionview-problem

UICollectionViewController 中的方法 - (void)outputSelectedCell 始终显示,没有任何选择...</p>

我希望你明白这个问题。

4

1 回答 1

1

问题是您有两个不同的集合视图。一个是您在情节提要中有一个出口(MainViewController 中的_collectionView)。另一种是您使用 UICollectionViewController 自动获得的,这是您在 CollectionViewController 中记录 self.collectionView 时获得的。将集合视图与 UIViewController 一起使用的通常方法是使该控制器成为集合视图的数据源和委托,而不是实例化 UICollectionViewController。因此,我会将所有集合视图数据源和委托方法从 CollectionViewController 移动到 MainViewController,并删除 CollectionViewController——实际上没有理由拥有该对象。请记住将 MainViewController 设置为集合视图的委托和数据源(您可以在 IB 中执行此操作)。

于 2013-10-19T00:29:31.643 回答