Взаимодействия между представлениями обычно представляют собой исполняемые объекты, которые имеют зависимость от другого представления, но скрывают эту зависимость.
уйста, извините, если его повторная тема.
Я обычно пишу свои приложения без раскадровок и помещаю создание представлений в viewDidLoad, например:
class LoginVC: UIViewController {
var view1: UIView!
var label1: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
loadStaticViews()
}
func loadStaticViews() {
view1 = UIView()
label1 = UILabel()
view.addSubview(view1)
view1.addSubview(label1)
// constraints...
}
}
И теперь я хочу попробовать шаблон MVVM в моем следующем приложении, и просто не знаю, куда поместить создание представлений. Теперь я думаю о чем-то таком:
class LoginVCViews {
static func loadViews<T, T1, T2>(superview: UnsafeMutablePointer<T>, view: UnsafeMutablePointer<T1>, label: UnsafeMutablePointer<T2>) {
guard let superview = superview.pointee as? UIView else { return }
let v = UIView()
let l = UILabel()
superview.addSubview(v)
v.addSubview(l)
// constraints...
view.pointee = v as! T1
label.pointee = l as! T2
}
}
class LoginVC: UIViewController {
private var view1: UIView!
private var label1: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
LoginVCViews.loadViews(superview: &view, view: &view1, label: &label1)
}
}
Как вы думаете ? Я не очень хорошо знаком с UnsafeMutablePointer и не уверен, что проблем не будет. И сколько это некрасиво?