0

デリゲートとデータソースを設定していますが、データ ソース メソッドが呼び出されません。

サブビューを追加する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];
}

データソース メソッドが呼び出されることはありません。reloadData を呼び出すときに、self.collectionView が null でないことを確認しました。

ありがとう!

4

1 に答える 1

2

ここにはいくつかの問題があると思います。また、コントローラーのコンテインメントを表示するのにいくつかの複雑さがあるため、詳細を確認する必要があります。

まず、EVPhotoCollectionViewController ビューを vc のサブビューとして追加していません。

[self addSubView:pc.view];

また、EVPhotoCollectionViewController のフレームを設定していないため、実装方法によっては、正しいサイズ/位置で表示されない場合があります。

最後に、EVPhotoCollectionViewController をどこにも保持しているようには見えません。そのビューはビュー階層によって保持されますが、EVPhotoCollectionViewController のインスタンスは、それを作成する関数が範囲外になると解放されるようです。

View Controller Containment: View Controller Containment は iOS 5 でどのように機能しますか?

于 2013-07-15T17:50:14.327 に答える