【发布时间】:2014-09-02 17:47:11
【问题描述】:
我有一个 UICollectionView,我通过 Storyboard 将其放置在自定义 UIViewController 中,并将其前导/尾随/顶部/底部空间固定到其超级视图。
然后我有一个自定义的UICollectionViewController 子类,它应该使用集合视图。所以在超级视图的UIViewController(PrimaryViewController)中,我有一个集合视图的出口,我实例化了我的自定义UICollectionViewController。我为其分配集合视图,并将自定义 UICollectionViewController 分配为集合视图的委托和数据源。
但是当我运行它时,集合视图不会出现在屏幕上。很明显,viewDidLoad() 没有在自定义 UICollectionViewController 类中被调用,所以要么我错过了一个关键部分,要么我以错误的方式接近它。
谁能告诉我如何在集合视图(通过 Storyboard 放置)和自定义 UICollectionViewController 类(仅代码)之间构建连接,以使其正常工作?
到目前为止,这是我的(简化的)代码...
class PrimaryViewController : UIViewController {
@IBOutlet private weak var _collectionView:UICollectionView!
private var _collectionViewCtrl:CustomCollectionViewController!
override func viewDidLoad() {
super.viewDidLoad()
_collectionViewCtrl = CustomCollectionViewController(collectionView: _collectionView)
}
}
class CustomCollectionViewController : UICollectionViewController {
init(collectionView:UICollectionView) {
super.init(nibName: nil, bundle: nil)
self.collectionView = collectionView
self.collectionView.delegate = self
self.collectionView.dataSource = self
}
required init(coder aDecoder:NSCoder) {
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
【问题讨论】:
-
为什么不在
PrimaryViewControllerIB 中嵌入CustomCollectionViewController。您可以将UICollectionViewController添加到UIViewController,然后将其类更改为您的自定义类。 -
@thelaws 之所以这样,是因为我的 PrimaryViewController 的视图中也有一个工具栏,而不仅仅是集合视图。
标签: ios objective-c cocoa-touch swift uicollectionview