Что вам на самом деле нужно, так это следовать архитектуре вашего проекта, например MVC
, MVP
или MVVM
, это популярные (их гораздо больше). Эта архитектура позволяет вам очищать код и поддерживать структуру вашего проекта.
Теперь для вашего сценария, который вы объяснили выше, у вас, похоже, есть много сохраненных свойств, таких как var greeting = UILabel()
, вы можете переместить их в класс представления и используйте только одно представление, чтобы установить представление контроллера. Вот пример (в MVC):
class ViewController: UIViewController {
let myView = View()
override func loadView() {
super.loadView()
view = myView
myView.model = Model(greetingText: "My greeting")
}
}
class View: UIView {
var model: Model? {
didSet { greeting.text = model?.greetingText }
}
var greeting = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(greeting)
// add all other sub-views and layout them here
}
}
struct Model { var greetingText: String }
Для получения более подробной информации о рефакторинге go с помощью руководств, которые объясняют это намного лучше и подробно.