有条件地显示列表后导航回来时崩溃

Crash while navigating back after showing List conditionally

在提交错误报告之前,我想确认我没有遗漏任何明显的东西。

在有条件地显示 List(或 Form)后从另一个视图导航回来时应用程序崩溃。奇怪的是,当列表上方有一个视图时,应用程序不会崩溃。 没有有用的堆栈跟踪可用。该应用程序崩溃 EXC_BAD_ACCESS (SIGSEGV).

复制粘贴重现:

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: SecondView()) {
                Text("Second view")
            }
        }
    }
}

struct SecondView: View {
    @State private var showList = false
    
    var body: some View {
        Group {
            if showList {
//              Text("No crash if there is a view above the list")
                
                List {
                    Text("Now navigate back")
                }
            } else {
                Button("Show list") {
                    self.showList = true
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

我在尝试在列表为空时有条件地显示消息时注意到此行为。上面的代码是一个抽象,但使用了几乎相同的逻辑结构。

macOS 10.15.5

Xcode 11.5

Simulator (iPhone 11 Pro)

尝试将以下内容添加到 NavigationView():

 .navigationViewStyle(StackNavigationViewStyle())

让我知道这是否适用于您的系统。