我正在尝试创建一个自定义 UICollectionViewController 子类。
我使用 Xcode 的向导创建了它:
点击 Finish 后,我得到了这个 .xib 文件:
当我尝试从另一个类中调用它时:
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]];
它不会崩溃,但有一些问题:
- 如果
.xib 文件中已经存在 CollectionViewLayout ,为什么还需要它?
- 我不想在
MyCollectionViewController 之外创建布局;在这种情况下,子类化的目的是什么?
- 整个 View 显示为空白。
Best Answer-推荐答案 strong>
如果在 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/
|