【发布时间】:2020-03-05 10:33:24
【问题描述】:
我在 SwiftUI Mac OS 中有一个状态,它存储我对导航视图的活动选择。导航视图一切正常。
现在我创建了一个新的class,它与Observable Object 确认。在某些子视图中,我将对该对象进行更改。更改完成后,我的 Navigation 视图也更新了对象,据我了解,这是 Observable Object 的功能。
我现在想要实现的是 Observable 对象在我的 Navigation 视图中更改了我的 @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 时,它给了我一个错误。
【问题讨论】: