В настоящее время я пытаюсь представить модальный вид, нажав кнопку в контекстном меню. Это работает, но код, который должен представлять модальное представление, вызывается дважды, и это является проблемой, потому что я вызываю некоторые сетевые запросы.
Вот мой демонстрационный проект (без сетевого взаимодействия):
Это представление, которое вызывается при запуске приложения.
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()
создается, я вижу, что эта часть вызывается дважды. Есть ли лучшее решение для представления модального вида без многократного создания экземпляра?