SwiftUI MacOS, использующий ObservableObject для обновления State - PullRequest
2 голосов
/ 05 марта 2020

У меня есть состояние в операционной системе SwiftUI Ma c, в которой хранится мой активный выбор вида навигации. Все работает с навигацией.

Теперь я создал новый class, который подтверждает Observable Object. В некоторых дочерних представлениях я внесу изменения в этот объект. Когда изменение выполнено, мое представление Navigation также обновило объект, что, насколько я понимаю, является особенностью Observable Object.

То, чего я сейчас хочу достичь, - это то, что объект Observable изменяет мои @State в мой вид навигации.

Это мое объявление в моем окне навигации. UserData хранит int также, который должен быть установлен на selection при изменении.

@EnvironmentObject var userData: UserData

@State var selection: Int?

Таким образом, userData.active = 2, должен также установить selection = 2. Есть ли событие onChange, которое я могу вызвать?

Я использую это @State selection для привязки в моей навигационной ссылке.

NavigationLink(destination: SecondContentView(), tag: 0, selection: self.$selection)
{

Второй подход , будет использовать это userData.active : Int непосредственно как State. Тем не менее, я передаю это selection State как Binding, и это дает мне ошибку при передаче переменной EnvironmentObject как Binding.

Любая помощь приветствуется:)

1 Ответ

1 голос
/ 05 марта 2020

Попробуйте использовать UserData напрямую, как

NavigationLink(destination: SecondContentView(), tag: 0, 
    selection: self.$userData.active)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...