SwiftUI NavigationLink никогда не освобождает память - PullRequest
3 голосов
/ 25 января 2020

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

...