Возьмите пример самого базового c примера с двумя экранами в NavigationView
:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: SubView()) {
Text("Go to screen 2")
}
}
.navigationBarTitle("Screen 1", displayMode: .inline)
}
}
}
struct SubView: View {
var body: some View {
Text("Hello, World!")
.navigationBarTitle("Screen 2", displayMode: .inline)
}
}
Если вы go выведите на экран 2 и нажмите кнопку «Назад», чтобы go вернуться на экран 1, SubView
никогда не выпускается. Если вы go назад и вперед несколько раз, будет несколько экземпляров SubView
в живых. Это похоже на огромную проблему / утечку памяти, кажется странным, это ведет себя так по умолчанию. Есть ли обходной путь?