Наследование UIViewControllers или протоколы - PullRequest
0 голосов
/ 06 мая 2020

Я делаю приложение, в котором многие View Controllers будут иметь одинаковый набор UIViews. Я пишу пользовательский интерфейс в коде и не хочу переписывать один и тот же код снова и снова. Каждый ViewController будет иметь одну и ту же главную кнопку и кнопку возврата, а затем у некоторых из них будет повторяться другой набор меток. Мне было интересно, какой подход должен быть лучше для меня, используя Наследование UIViewControllers, например:

VC1: UIViewController with main button and back button
VC2: VC1 with added labels
VC3: VC1 with added other labels

Или мне следует использовать протоколы для добавления таких меток:

protocol HasLabels {
    var label1: UILabel { get set }
    var label2: UILabel { get set }

    func setupLabels()
}


extension HasLabels where Self: VC1 {
    func setupLabels() {
        self.view.addSubview(label1)
        self.view.addSubview(label2)
        // setting up constraints
    }
}

Или следует ли мне просто настраивать представления в каждом UIViewController отдельно и не усложнять это?

...