Если «другой» ViewController, для которого вы хотите изменить цвет градиента фона, - это тот, который содержит ваш UICollectionView, то используйте код ниже ... Если это любой другой ViewController, вам нужно получить экземпляр ViewController, которыйВы хотите изменить ...
class MyCollectionViewCell: UICollectionViewCell {
var delegate: MyCollectionViewCellDelegate?
func funcThatChangesColorInOtherViewColtroller() {
let firstGradientColor = UIColor.red
let secondGradientColor = UIColor.blue
delegate?.viewControllerShouldUpdateBackgroundToColors(firstColor: firstGradientColor, secondColor: secondGradientColor)
}
}
protocol MyCollectionViewCellDelegate {
func viewControllerShouldUpdateBackgroundToColors(firstColor: UIColor, secondColor: UIColor)
}
class OtherViewController: UICollectionViewDataSource, MyCollectionViewCellDelegate {
...
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ReuseIdentifier", for: indexPath) as! MyCollectionViewCell
cell.delegate = self
return cell
}
func viewControllerShouldUpdateBackgroundToColors(firstColor: UIColor, secondColor: UIColor) {
//Set your VCs Background Gradient to the Colors in
}
}