我在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
时给了我一个错误。
答案 0 :(得分:1)
尝试像
一样直接使用UserData
NavigationLink(destination: SecondContentView(), tag: 0,
selection: self.$userData.active)