如何允许在SwiftUI中创建新对象的按钮在重新加载时不创建对象?

如何允许在SwiftUI中创建新对象的按钮在重新加载时不创建对象?,swiftui,Swiftui,因此,我在Swift UI中制作了一个“新便笺”按钮,类似于苹果的便笺应用程序 现在,我的“新按钮”是一个“导航链接”,如下所示: 不幸的是,每次加载视图时,这都会触发我的应用程序创建新便笺:( :/ 我一直在寻找一种方法,以启动一个按钮按下序列,但我还没有发现在这方面的成功 当我尝试一种模式时,我发现自己也有同样的问题 Button("New") { self.isNew = true }.sheet(isPresented: $isNew, content: { Edito

因此,我在Swift UI中制作了一个“新便笺”按钮,类似于苹果的便笺应用程序

现在,我的“新按钮”是一个“导航链接”,如下所示:

不幸的是,每次加载视图时,这都会触发我的应用程序创建新便笺:(

:/

我一直在寻找一种方法,以启动一个按钮按下序列,但我还没有发现在这方面的成功

当我尝试一种模式时,我发现自己也有同样的问题

Button("New") {
    self.isNew = true
 }.sheet(isPresented: $isNew, content: {
    EditorView(makeNewNote())
 })
我想知道最好的方法是什么

没有成功:(

编辑:

我参考了这篇文章和文档,但我还没有找到一种通过按下按钮进行切换的理想方法。(函数dosent在闭包中被触发:)


另外,如果你想知道什么是
makeNewButton()
,它基本上会将一个新的核心数据对象插入到我的应用程序的托管上下文中。

我不完全确定,但在我看来,你的问题似乎在于你的模型。因为每次加载视图时,它都会调用
makeNewButton()
函数,对吗

也许您可以通过显示“new note”视图和一个额外的“Save”(保存)按钮来解决问题,该按钮仅在触发后对模型进行更改

或者,您可以使用
context.rollback()
放弃更改。另外,请检查。它是Beta 4,但工作原理相同,imo是如何将CoreData与SwiftUI一起使用的一个很好的示例。:)

Button("New") {
    self.isNew = true
 }.sheet(isPresented: $isNew, content: {
    EditorView(makeNewNote())
 })