尝试在按下按钮后移动到swiftUI中的新视图



我正在尝试创建一个能够创建和查看分配的应用程序。我有一个叫做AddAssignment.swift和ViewAssignment.swift的页面,我正试图从AddAssignment页面移动到ViewAssignment页面上的一个按钮。

用户应该在文本框中输入详细信息,然后当按下按钮时,我想保存文本框中的信息并移动到View Assignments屏幕。到目前为止,我还不能让这个按钮正常工作。

下面是我的代码:
import SwiftUI
struct AddAssignment: View {
    
    // Properties
    @State var taskName = ""
    @State var dueDate = ""
    @State var subject = ""
    @State var weighting = ""
    @State var totalMarks = ""
    
    // Methods
    
    func saveTask(a:String,b:String,c:String,d:String,e:String) -> [String] {
        
        var newTask: [String] = []
        
        newTask.append(a);
        newTask.append(b);
        newTask.append(c);
        newTask.append(d);
        newTask.append(e);
        return newTask
        
    }
    
    
    // Main UI
    var body: some View {
        VStack {
            
            Text("Add New Task")
                .font(.headline)
                .padding()
                .scaleEffect(/*@START_MENU_TOKEN@*/2.0/*@END_MENU_TOKEN@*/)
            
            Spacer()
            
            Image(systemName: "plus.app.fill")
                .foregroundColor(Color.orange)
                .scaleEffect(/*@START_MENU_TOKEN@*/5.0/*@END_MENU_TOKEN@*/)
            
            Spacer()
            
            Group { // Text Fields
            
            TextField("Enter assignment name", text: $taskName)
                .padding([.top, .leading, .bottom])
                
            
            
            TextField("Enter due date", text: $dueDate)
                .padding([.top, .leading, .bottom])
            
            
            
            TextField("Enter subject", text: $subject)
                .padding([.top, .leading, .bottom])
            
            
            TextField("Enter percent weighting", text: $weighting)
                .padding([.top, .leading, .bottom])
            
            
            TextField("Enter total marks", text: $totalMarks)
                .padding([.top, .leading, .bottom])
                
            }
            
           Spacer()
            
    
            Button("Create New Task", action: {
                
                let task: [String] = [taskName, dueDate, subject, weighting, totalMarks]
                print(task)
                ViewAssignment()
                
            })
            
            
            
            Spacer()
                    
        }
    }
    
}

struct AddAssignment_Previews: PreviewProvider {
    static var previews: some View {
        AddAssignment()
    }
}

控制台能够返回教科书的值并存储此信息,我只是不确定如何将其带到ViewAssignment.swift文件中的另一个结构体。

要使"移动"生效,请将此添加到" AddAssignment":

struct AddAssignment: View {
    @State var toAssignment: Int? = nil

替换按钮("Create New Task", action:{…},

        NavigationLink(destination: ViewAssignment(), tag: 1, selection: $toAssignment) {
            Button("Create New Task") {
                let task: [String] = [taskName, dueDate, subject, weighting, totalMarks]
                print(task)
                self.toAssignment = 1
            }
        }

一定要用"NavigationView{…}">