首页 > 解决方案 > SwiftUI NavigationLink 从不释放内存

问题描述

以最基本的示例应用程序为例,其中包含两个屏幕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)
  }
}

如果您转到屏幕 2 并按返回按钮返回屏幕 1,SubView则永远不会释放。如果你来回多次,就会有多个SubView活着的实例。这感觉像是一个巨大的问题/内存泄漏,默认情况下它的行为似乎很奇怪。有解决方法吗?

标签: iosswiftuiinstruments

解决方案


推荐阅读