2013-10-30 72 views
1

創建2 UICollectionView類collectionviewCell不會改變,每一個使用2個不同的UICollectionViewCell當過渡到其它collectionviewController

@interface PhotosCollectionViewController : UICollectionViewController 
@interface FullScreenCollectionViewController : UICollectionViewController 

@interface PhotoCell : UICollectionViewCell 
@interface FullPhotoCell : UICollectionViewCell<UIScrollViewDelegate> 

PhotosCollectionViewController.m,我寄存器光電管類,然後選擇下一個視圖控制器FullScreenCollectionViewController當didSelect

//Register Cell 
-(id)initWithCollectionViewLayout:(UICollectionViewFlowLayout *)layout{ 
    if (self = [super initWithCollectionViewLayout:layout]) 
    {   
     [self.collectionView registerClass:[PhotoCell class] forCellWithReuseIdentifier:CELL_ID]; 
    } 
    return self; 
} 
//dequence resuse code 
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    PhotoCell* cell = (PhotoCell *)[collectionView dequeueReusableCellWithReuseIdentifier:CELL_ID forIndexPath:indexPath]; 
    NSLog(@"reuse CELL"); 
    FICDPhoto *photo = [_photos objectAtIndex:indexPath.row]; 
    cell.imageView.image = [photo sourceImage]; 
    return cell; 
} 
//Next ViewController transition code 
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UIViewController *vc = [self nextViewControllerAtPoint:CGPointZero]; 
    [self.navigationController pushViewController:vc animated:YES]; 
} 


-(UICollectionViewController*)nextViewControllerAtPoint:(CGPoint)p 
{ 
    FullScreenCollectionViewController* nextCollectionViewController = [[FullScreenCollectionViewController alloc] initWithCollectionViewLayout:[[FullScreenFlowLayout alloc] init]]; 

    nextCollectionViewController.useLayoutToLayoutNavigationTransitions = YES; 

    nextCollectionViewController.title = @"FullScreen"; 
    return nextCollectionViewController; 

} 

FullScreenCollectionViewController,我註冊FullPho toCell類

[self.collectionView registerClass:[FullPhotoCell class] forCellWithReuseIdentifier:CELL_ID_FULL]; 

但是序列代碼永遠不會調用

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    FullPhotoCell* cell = (FullPhotoCell *)[collectionView dequeueReusableCellWithReuseIdentifier:CELL_ID_FULL forIndexPath:indexPath]; 
    NSLog(@"Reuse FULL Cell"); 
    FICDPhoto *photo = [_photos objectAtIndex:indexPath.row]; 
    cell.imageView.image = [photo sourceImage]; 
    return cell; 
} 

新的佈局是適用,FullScreenCollectionViewController的viewDidLoad中也呼籲,但日誌消息「複用小區」告訴全屏的CollectionView仍然使用舊的光電類。

我還是不明白是什麼問題。請幫幫我!

回答