在Swift的导航链接中,如何更改变量的值?

时间:2020-04-20 07:35:15

标签: swift xcode variables navigation swiftui

如何在导航链接期间更改变量的值?

我有一个定义为

的变量
@State var numberChange: Int

并且我希望在用户按下按钮时进行更改,即使该按钮已附加导航链接,也带有

NavigationLink(destination: destinationView(numberChange: self.numberChange)) {
                            imageLink(imageName: "imageName")
                            }.buttonStyle(PlainButtonStyle())

如果我尝试

destinationView(numberChange: self.numberChange = 4)

Xcode抛出

无法将类型'()'的值转换为预期的参数类型'Int?'

我只编程了几个月,而我在Swift中工作了不到一个星期,所以如果这是一个基本问题,我感到抱歉。

预先感谢

英里

1 个答案:

答案 0 :(得分:0)

首先,您应该将整数传递给函数(而不是操作):

destinationView(numberChange: self.numberChange)

destinationView(numberChange: 4)

这是错误的原因。


第二,您必须从视图外部更改State属性。解决此问题的一种好方法是将所有State属性声明为private var


第三,您可以使用.onAppear()

.onAppear {
   self.text = "Goodbye world"
}

只要要显示视图,就会调用此方法。您可以根据需要记住该值,将其传递给下一个视图,只要值更改(而不是等待导航),就可以使用binding机制更改UI。