【发布时间】:2021-09-09 23:38:01
【问题描述】:
在我的 UI 中,我有一个供用户创建新项目的按钮。当点击按钮时,我想触发一个新视图来加载新创建的项目。
我知道我可以使用NavigationLink with isActive set to a state variable,但是在加载时还没有定义需要传递给新视图的参数(只有在创建项目之后)。如何防止项目实体尚未定义的错误?
例如:
struct FirstView: View {
@State var newProject: Project = Project()
@State var pushNewProject:Bool = false
var body: some View {
...
.toolbar{
ToolbarItem(placement: .navigationBarTrailing){
Button(action: {
self.newProject = Project.create(context: viewContext)
self.pushNewProject = true
}){
Text("Create Project")
}
}
}// toolbar
NavigationLink(destination:
ProjectSideBar(project: self.newProject),
isActive: self.$pushNewProject) {
EmptyView()
}.hidden()
}
【问题讨论】: