Есть одна вью модель с некоторым количеством свойств (имя и возраст). В первом вью контроллере отображаются значения этих свойств (например Joe 30). При нажатии на кнопку происходит переход на второй вью контроллер, в котором можно отредактировать эти два значения (на, допустим, Misha 40). Соответственно, при возвращении на первый вью контроллер, в лейблах должны отобразиться эти новые значения. Данную задачу можно решить двумя способами: это использовать статические свойства:
class ViewModel {
static var name = BehaviorRelay<String>(value: "Joe")
static var age = BehaviorRelay<String>(value: "30")
}
Либо передавать self
class ViewModel {
var name = BehaviorRelay<String>(value: "Joe")
var age = BehaviorRelay<String>(value: "30")
func foo() -> ViewModel {
return self
}
}
Вопрос: какой из этих подходов правильный? Или можно сделать как-то иначе, сделав ещё одну вью модель (EditViewModel, например (но в таком случае я не знаю как обновить данные в первом вью))?