Инициировать класс из моего второго представления с данными из первого - PullRequest
1 голос
/ 23 февраля 2020

В моем начальном ContentView () у меня есть кнопка, которая представляет UIImagePicker, когда изображение выбрано, я затем перехожу к SecondView, где я могу просмотреть изображение и его данные из UIImagePickerController.InfoKey

У меня в настоящее время есть класс ImageManager, который установлен как объект EnviromentObject, который я передаю InfoKey, который затем устанавливает все переменные в этом классе - это работает, но это кажется грязным.

То, что я хотел бы сделать, это инициировать класс ImageManager, когда я перехожу к SecondView, так как это единственное представление, которому нужны эти данные.

Я пытался передать InfoKey как переменную:

@State var InfoKey: [IImagePickerController.InfoKey: Any]

SecondView(key: self.infoKey)

, но это дает сбой, потому что у меня нет данных, пока не выбрано изображение

Что бы быть лучшим способом справиться с этим?

1 Ответ

1 голос
/ 23 февраля 2020

@State должно иметь начальное значение, поэтому используйте только пустой контейнер

@State var infoKey: [IImagePickerController.InfoKey: Any] = [:]

, а затем передайте его в SecondView в качестве привязки

SecondView(key: self.$infoKey)

где

struct SecondView: View {
    @Binding var key: [IImagePickerController.InfoKey: Any]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...