私は UICollectionView をあまり使用していないので、これは不可能かもしれませんが、質問しても問題ありません:)
各セルは異なる色として設定されます。
私がやりたいことは、セルをタップして、選択されたのと同じ色の UIImageView を含む別の UIViewController にプッシュすることです。
現在、2 番目の UIViewController のビューの色を変更できますが、その中の UIImageView の色は変更できません。
これが私のコードの一部です:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
[collectionView deselectItemAtIndexPath:indexPath animated:YES];
ImageViewController * imageVC = [[ImageViewController alloc] initWithNibName:@"ImageViewController" bundle:nil];
self.flatColor = [self colorForRow:indexPath.row];
[self.navigationController pushViewController:imageVC animated:YES];
imageVC.colorImageView.backgroundColor = _flatColor;
}
- (UIColor *)colorForRow:(NSInteger)row
{
UIColor *color;
switch (row)
{
case 0:
color = [UIColor redColor];
break;
case 2:
color = [UIColor greenColor];
break;
case 4:
color = [UIColor blueColor];
break;
default:
color = [UIColor yellowColor];
break;
}
return color;
}
編集:
問題を修正しました。
コードの一部を再配置する必要がありました。最初に新しいviewControllerを完全にロードしてから、UIImageViewのbackgroundColorを変更する必要があります