gpt4 book ai didi

ios - UICollectionViewController 嵌套在普通的 UIViewController 中

转载 作者:行者123 更新时间:2023-11-29 13:02:31 24 4
gpt4 key购买 nike

我在普通的 ViewController (MainViewController) 中添加了一个 UICollectionView,然后在 ViewController 中创建了一个 UICollectionViewController 子类 (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 总是显示,没有任何选择......

我希望你能理解这个问题。

最佳答案

问题是您有两个不同的 Collection View 。一个是您在 Storyboard中有导出的那个(MainViewController 中的_collectionView)。另一种是使用 UICollectionViewController 自动获得的,这是在 CollectionViewController 中登录 self.collectionView 时获得的。将 Collection View 与 UIViewController 一起使用的通常方法是使该 Controller 成为 Collection View 的数据源和委托(delegate),而不是实例化 UICollectionViewController。因此,我会将所有 Collection View 数据源和委托(delegate)方法从 CollectionViewController 移至 MainViewController,并删除 CollectionViewController——实际上没有理由拥有该对象。请记住将 MainViewController 设置为 Collection View 的委托(delegate)和数据源(您可以在 IB 中执行此操作)。可以在MainViewController的viewDidLoad方法中定义_collectionitems,将outputSelectedCell中的代码移到testButtonPressed中。

关于ios - UICollectionViewController 嵌套在普通的 UIViewController 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com