OGeek|极客世界-中国程序员成长平台

标题: ios - 使用 xib 子类化 UICollectionViewController [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:54
标题: ios - 使用 xib 子类化 UICollectionViewController

我正在尝试创建一个自定义 UICollectionViewController 子类。

我使用 Xcode 的向导创建了它:

Screenshot 1

点击 Finish 后,我得到了这个 .xib 文件:

Screenshot 2

当我尝试从另一个类中调用它时:

MyCollectionViewController *myCollectionViewController = [MyCollectionViewController new];

[self addChildViewController:myCollectionViewController];

[self.view addSubview:myCollectionViewController.view];

我收到此错误:

UICollectionView must be initialized with a non-nil layout parameter

如果我使用:

MyCollectionViewController *myCollectionViewController = [[MyCollectionViewController alloc] initWithCollectionViewLayout:[UICollectionViewFlowLayout new]];

它不会崩溃,但有一些问题:

  1. 如果 .xib 文件中已经存在 CollectionViewLayout,为什么还需要它?
  2. 我不想在 MyCollectionViewController 之外创建布局;在这种情况下,子类化的目的是什么?
  3. 整个 View 显示为空白。



Best Answer-推荐答案


如果在 xib 中指定了 View Controller 的 UI,那么您必须通过调用 [[MyCollectionViewController alloc] initWithNibName"MyCollectionViewController"inBundle:[NSBundle mainBundle]] (或者你得到你的 bundle )。当您使用此构造函数时, View Controller 的导出会正确连接,并且布局是根据 xib 中的内容设置的。

关于ios - 使用 xib 子类化 UICollectionViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921256/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4