Передать цвет градиента от одного контроллера вида к другому контроллеру вида - PullRequest
0 голосов
/ 26 декабря 2018

Как передать цвет градиента фона ячейки коллекции другому контроллеру пользовательского представления?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы можете создать инициализатор в вашем SecondViewController, так что вы сразу передадите ему нужный цвет перед его представлением.

init(color: UIColor) {
    super.init(nibName: nil, bundle: nil)
    self.color = color
}

Затем, когда вы создаете экземпляр SecondViewController и используете внутри него цвет.

0 голосов
/ 26 декабря 2018

Если «другой» 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
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...