即使我正在设置委托和数据源,也不会调用数据源方法。
我有一个ViewController,可以添加一个子视图:
EVPhotoCollectionViewController *pc = [[EVPhotoCollectionViewController alloc] initWithNibName:@"EVPhotoCollectionViewController" bundle:nil];
self.damagePhotosView = pc.view;
在EVPhotoCollectionViewController内部我在xib中连接了委托和数据源,但也通过以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
[self.collectionView reloadData];
}
没有调用任何数据源方法。我已经验证了self.collectionView在调用reloadData时不为null。
谢谢!
答案 0 :(得分:2)
我认为这里有几个问题 - 查看控制器包含有一些复杂性,你可能需要阅读。
首先,您没有将EVPhotoCollectionViewController视图添加为您的vc的子视图,例如:
[self addSubView:pc.view];
此外,您没有为EVPhotoCollectionViewController设置框架,因此根据其实施方式,它可能无法显示正确的尺寸/位置。
最后,看起来你并没有在任何地方保留EVPhotoCollectionViewController。它的视图将由视图层次结构保留,但看起来EVPhotoCollectionViewController的实例将在创建它的函数超出范围时解除分配。