IBOutlet равен нулю в классе IBDesignable - PullRequest
0 голосов
/ 30 октября 2018

У меня есть собственный класс представления, который должен содержать метку. У меня есть расширение в каждой цели, которое будет предоставлять текст, который должен отображаться в представлении, таким образом, мне не нужно заново создавать каждый контроллер, чтобы иметь разные метки и цвет фона.

Мой код:

@IBDesignable
class HomeAccentView: UIView {

    @IBOutlet weak var nameLabel: UILabel!

    override init(frame: CGRect) {
        super.init(frame: frame)

        setup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        setup()
    }

    override func awakeFromNib() {
        super.awakeFromNib()

        setup()
    }

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()

        setup()
    }

    private func setup() {
        backgroundColor = UIColor.main

        nameLabel.text = String.headerText
        nameLabel.textColor = UIColor.white
    }
}

У меня есть владелец файла моего пера HomeAccentView, и ярлык подключен как розетка на раскадровке. nib storyboard

Но всякий раз, когда я пытаюсь установить текст метки, он всегда равен нулю. Что я пропускаю или делаю неправильно?

1 Ответ

0 голосов
/ 30 октября 2018

Вы не установили класс для просмотра. Вы устанавливаете только владельца файла, что означает, что вы сказали, что HomeAccessView отвечает за загрузку представления, но ваш код не показывает это. Есть ли какой-то мотив за этим? В противном случае удалите класс из владельца файла и установите его для просмотра.

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