我目前在尝试通过在上下文菜单中按下按钮来展示模态视图。这样做可以实现,但是应该呈现模态视图的代码被调用了两次,这是一个问题,因为我正在调用一些网络请求。
这是我的演示项目(不包含网络相关内容):
这是在应用程序启动时调用的视图。
struct ContentView: View {
@State var isModal: Bool = false
var body: some View {
Group {
Text("Main view")
}.contextMenu {
Button("Present Detail") { self.isModal = true }.sheet(isPresented: $isModal) {
DetailView()
}
}
}
}
这是简单的详细视图。
struct DetailView: View {
var body: some View {
Text("Detail View")
}
}
所以,如果我在实例化DetailView()
的那一行设置断点,我会发现这个部分被调用了两次。有没有更好的解决方案来呈现模态视图,而不需要多次实例化?