SwiftUI MacOS使用ObservableObject更新状态

时间:2020-03-05 10:33:24

标签: swift macos swiftui

我在SwiftUI Mac OS中有一个州,它存储了我对导航视图的主动选择。一切都可以在“导航”视图中使用。

现在,我创建了一个新的class,用于确认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 个答案:

答案 0 :(得分:1)

尝试像

一样直接使用UserData
NavigationLink(destination: SecondContentView(), tag: 0, 
    selection: self.$userData.active)
相关问题