Самым очевидным способом было бы сделать это обычным способом (который работает, если они являются экземплярами другого класса), вот так :
Вид сверху:
Код: Выделить всё
exampleView()
.environmentObject(vm1)
.environmentObject(vm2)
Код: Выделить всё
struct exampleView: View {
@EnvironmentObject var vm1: ViewModel
@EnvironmentObject var vm2: ViewModel
var body: some View {
...
}
}
Я искал везде, но не нашел никакого решения, кроме как использовать один класс и изменить свойства класса, например, со «свойства» на «свойство1» и «свойство2». Это не только довольно уродливый код, но и в моем случае это невозможно.
Почему? Проект, над которым я работаю, довольно большой, и у меня нет доступа к некоторой части кода. Класс, который инициализируется дважды, владеет массивом, который заполняется по-разному, в зависимости от других факторов. В представлении некоторые части используются повторно, поскольку массив содержит элементы одного и того же типа, но заполнен разным содержимым.
Если это кажется неправильным для пользовательского интерфейса Swift, сообщите мне. Мне пришлось бы многое переделать, но на первый взгляд это казалось довольно простой проблемой, поэтому я был бы признателен за ответы, в которых я могу сохранить структуру своего класса.
Подробнее здесь: https://stackoverflow.com/questions/693 ... -same-type