Получить значение среды UIViewControllerRepresentableContext? - PullRequest
2 голосов
/ 14 июня 2019

Хорошо,

так что это может быть тривиально, но я не уверен, как это сделать.

У меня есть UIViewController, который создается при вызове представления SwiftUI:

func makeUIViewController(context: Context) -> MyViewController

Вид, который делает этот вызов, получил объект среды в SceneDelegate, как мы видели в учебных пособиях:

window.rootViewController = UIHostingController(rootView: ContentView().environmentObject(MyData()))

Я пытаюсь использовать этот объект среды (MyData ()) в моей логике UIViewController. ViewController будет читать / писать на экземпляре MyData по мере необходимости, и, насколько я понимаю, это должно заставить представление SwiftUI реагировать соответствующим образом, поскольку MyData соответствует BindableObject ...

Таким образом, в вызове makeUIViewController я получаю UIViewControllerRepresentableContext. Я могу видеть окружающую среду в контексте:

context.environment

и если я распечатываю его в консоли во время отладки, я вижу это:

context.environment: [EnvironmentPropertyKey<PreferenceBridgeKey> = Value(value: Optional(SwiftUI.PreferenceBridge)), EnvironmentPropertyKey<FontKey> = Optional(SwiftUI.Font(provider: SwiftUI.(unknown context at $1c652cbec).FontBox<SwiftUI.Font.(unknown context at $1c656e2cc).TextStyleProvider>)), .......

В печати я вижу экземпляр MyData environmentObject:

EnvironmentPropertyKey<StoreKey<MyData>> = Optional(MyApp.MyData), ...

Я не уверен, как получить MyData из значений среды, переданных мне в context.environment ....

Я попытался выяснить, как получить надлежащий EnvironmentKey для MyData, чтобы я мог попытаться получить к нему доступ, просмотреть индекс ... context.environment [myKey ...]

Как я могу получить MyData из значений среды, предоставленных мне контекстом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...