Как получить iboutlet из другого класса в Swift - PullRequest
1 голос
/ 09 апреля 2019

, поэтому я хочу изменить цвет кнопки в контроллере вида, но проблема в том, что моя кнопка ссылается на мой класс представления коллекции. Я не знаю, как вызвать кнопку из другого класса

коллекция

class CollectionViewCell: UICollectionViewCell {

@IBOutlet weak var menusButton: UIButton!

public func MenuButtonFunction (){
menusButton.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
}

ViewController

var menuButtonFunc = CollectionViewCell()
override func viewDidLoad() {
    super.viewDidLoad()
menuButtonFunc.MenuButtonFunction()

     doneButton.layer.cornerRadius = 10

}

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Мой первый инстинкт должен был бы использовать делегирование или наблюдатель образец.

Я не могу сказать гораздо больше, не зная больше деталей вашего кода (то есть, если он действительно прост с точки зрения иерархии, то комментарий Joakim Danielson просто об использовании публичной функции: наверное ваше лучшее решение).

0 голосов
/ 09 апреля 2019

Вы не должны создавать экземпляр своей ячейки с помощью вызова конструктора - он не будет создавать дочерние элементы, и именно поэтому у вас есть ссылка nil на вашу кнопку.Вы должны вызвать dequeueReusableCell UICollectionView метод, чтобы получить полностью созданную ячейку.

...