首页 > 解决方案 > 试图通过导航链接从视图 1 移动到视图 2。返回视图 1 的尝试暂时显示视图 1 并重新显示视图 2

问题描述

尝试通过 view1 上的导航链接上的按钮更新 view1 中的数字,该按钮显示视图 2 和 TextField 以更改数字。输入更改后,我按Enter。显示暂时更改为 view1,然后返回 view2。数字本身确实发生了变化。

import SwiftUI

struct ContentView: View {
    @AppStorage("score") var score = 0
    var body: some View {
        NavigationView {
            Form {
            Text("score is \(score)")
            }.navigationBarTitle("view1").toolbar {
                NavigationLink(
                    destination: view2( score: $score),
                    label: { Text("change score") }
                )
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
struct view2: View {
 
    @Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
    @Binding var score: Int

    let formatter: NumberFormatter = {
            let formatter = NumberFormatter()
            formatter.numberStyle = .decimal
            return formatter
        }()

    var body: some View {
       
           Form {
               HStack {
                   TextField("Number: ", value: self.$score,formatter:
                          formatter, onCommit: {
                               self.presentationMode.wrappedValue.dismiss()
                       })
               }
           }.navigationTitle("view2")
    }
}

标签: swiftnavigationview

解决方案


推荐阅读