因此,我要在Swift UI中为类似于Apple Notes应用程序的“新笔记”按钮。
现在我的“新建按钮”是一个“导航链接”,如下所示:
$roleMembers = [ordered]@{}
for ($i = 0; $i -lt $roles.Count; $i++) {
$roleMembers[$roles[$i]] = $members[$i]
}
不幸的是,这会在每次加载视图时触发我的应用创建新笔记。 :(
我一直在寻找一种方法来启动按钮,但是我还没有找到成功的方法。
当我尝试模态时,我发现自己遇到了同样的问题
NavigationLink(
destination: EditorView(makeNewNote())
) {
Text("New")
}
我想知道解决这个问题的最佳方法是什么。
没有成功:(
编辑:
我已经提到了这个问题和文档,但是我还没有找到一种理想的通过按键进行搜索的方法。 (该函数在关闭时被触发:)
https://www.hackingwithswift.com/quick-start/swiftui/how-to-push-a-new-view-onto-a-
此外...如果您对Button("New") {
self.isNew = true
}.sheet(isPresented: $isNew, content: {
EditorView(makeNewNote())
})
的用途感到好奇,它基本上是将新的Core Data对象插入我应用的托管上下文中。
答案 0 :(得分:1)
我不确定,但是在我看来,您的问题出在您的模型上。因为每次加载视图时,它都会调用makeNewButton()
函数对吗?
也许您可以通过显示“新注释”视图并具有一个额外的“保存”按钮来解决问题,该按钮仅在触发模型后才对其进行更改。
或者,您可以使用context.rollback()
放弃更改。另外,请检出this Project。它是Beta 4,但工作原理相同,而imo是如何在SwiftUI中使用CoreData的一个很好的例子。 :)