ios - 将值传递到导航链接 View 中的文本框

标签 ios swiftui navigationview

我正在尝试将第一个 View 中的文本框的值传递到第二个 View 中的文本框。

struct FirstView: View {
@State private var inputTextValue = ""
var body: some View {        
    NavigationView{
        VStack {
            TextField("",text: $inputTextValue)
                .frame(width: 200, height: 30, alignment: .center)
                .border(.gray)
            NavigationLink(destination: {SecondView(incomingTextFieldvalue: inputTextValue)}, label: {Text("To second view")})
        }
    }
}


struct SecondView: View {
var incomingTextFieldvalue: String
@State var textFieldValue = "Initial Value in view 2"
var body: some View {
    VStack {
        Spacer()
        TextField("",text: $textFieldValue)
            .frame(width: 200, height: 30, alignment: .center)
            .border(.gray)
        Spacer()
        Text("Incoming value: \(incomingTextFieldvalue)")
        Text("This value: \(textFieldValue)")
        
        Spacer()
    }
}

所以,我真正想要的是第二个 View 中的文本框最初填充了传递的值。

我尝试了各种解决方案,但未能得到我需要的解决方案。如果我需要提供更多信息,请告诉我。

最佳答案

我们可以在onAppear中将传入值设置为内部,例如

VStack {
    Spacer()
    TextField("",text: $textFieldValue)
        .frame(width: 200, height: 30, alignment: .center)
        .border(.gray)
    Spacer()
    Text("Incoming value: \(incomingTextFieldvalue)")
    Text("This value: \(textFieldValue)")

    Spacer()
}
.onAppear { textFieldValue = incomingTextFieldvalue }   // << here !!

使用 Xcode 13.4/iOS 15.5 进行测试

*(当然如果你不想分享它们,这还不清楚)

关于ios - 将值传递到导航链接 View 中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73004733/

相关文章:

ios - 在 IOS 上重新启动应用程序之前,Firebase 数据不会发送到服务器

ios - coreData 中的关系如何运作

android - 如何在 Google 的新 NavigationView 中将 MenuItem 添加到 SubMenu?

ios - iOS YouTube YouTube API上传视频,如何记录错误的userInfo?

ios - 如何获取非矩形旋转UIImage的 "edge"?

ios - UIViewControllerRepresentable 包装在 AnyView 中时无法正常工作

ios - 使用带有 NavigationView 的 ScrollView 我得到空白的灰色空间

SwiftUI:多平台 iOS/MacOS 的图像

android - 无法解析符号 'NavigationView'

android - 如何设计从右到左的android.support.design.widget.NavigationView?