Несколько @EnvironmentObject одного типаIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Несколько @EnvironmentObject одного типа

Сообщение Anonymous »

Я просто хочу передать в представление два объекта EnvironmentObjects, которые являются разными экземплярами одного и того же класса. Я чувствую, что что-то упустил из виду, поскольку это кажется довольно простым.
Самым очевидным способом было бы сделать это обычным способом (который работает, если они являются экземплярами другого класса), вот так :
Вид сверху:

Код: Выделить всё

exampleView()
.environmentObject(vm1)
.environmentObject(vm2)
Подпредставление:

Код: Выделить всё

struct exampleView: View {

@EnvironmentObject var vm1: ViewModel
@EnvironmentObject var vm2: ViewModel

var body: some View {
...
}
}
Но это не работает, поскольку представление установит для vm1 и vm2 исходное значение vm1.
Я искал везде, но не нашел никакого решения, кроме как использовать один класс и изменить свойства класса, например, со «свойства» на «свойство1» и «свойство2». Это не только довольно уродливый код, но и в моем случае это невозможно.
Почему? Проект, над которым я работаю, довольно большой, и у меня нет доступа к некоторой части кода. Класс, который инициализируется дважды, владеет массивом, который заполняется по-разному, в зависимости от других факторов. В представлении некоторые части используются повторно, поскольку массив содержит элементы одного и того же типа, но заполнен разным содержимым.
Если это кажется неправильным для пользовательского интерфейса Swift, сообщите мне. Мне пришлось бы многое переделать, но на первый взгляд это казалось довольно простой проблемой, поэтому я был бы признателен за ответы, в которых я могу сохранить структуру своего класса.

Подробнее здесь: https://stackoverflow.com/questions/693 ... -same-type
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Swiftui -> Thread 1: Фатальная ошибка: нет наблюдаемого объекта типа myObject.Type (EnvironmentObject в листе)
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • EnvironmentObject обновлен в представлении, но не в корневом файле приложения.
    Гость » » в форуме IOS
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость
  • SwiftUi UIViewRepresentable не получает обновления состояний через EnvironmentObject или ObservedObject
    Гость » » в форуме IOS
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Передайте EnvironmentObject как слабую ссылку на SwiftUI View.
    Anonymous » » в форуме IOS
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI: невозможно найти «viewModel» в области видимости при использовании @EnvironmentObject
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»