SwiftUI 导航栏内联模式可搜索问题

SwiftUI navigation bar inline mode searchable issue

我注意到在我的应用程序中 inline 导航栏显示模式和 searchable 上使用 List 时有一个很大的问题。选择导航链接时,导航到推送的视图时会出现不希望看到的外观。使用 automatic 显示模式工作正常,我没有发现问题。

我不确定为什么仅在显示模式内联时会发生这种情况。我不想使用 LargeTitle,我只是不喜欢它们的外观。这是错误还是我犯的错误。我在下面编写了可重现的代码,我们将不胜感激。

2022 年 4 月 5 日更新

自从我向 Apple 报告该问题以来已经 两周 了。除了使用 Xcode 13.2.1 之外,我一直无法找到任何类型的解决方案或临时解决方法,这在任何方面都不是修复方法。如果有人有任何提示,请发表评论。

看来 Xcode 13.3 是问题所在,我下载了 Xcode 13.2.1,它工作正常。我已经报告了这个问题。您可以看到相同的代码在以前的版本中运行良好。所以任何高于 iOS 15.2 的东西都坏了,做同样的事情。

Xcode 13.3 BUG

Xcode 13.2.1 工作

enum Test: String, CaseIterable, Identifiable {
    case one
    case two
    case three
    case four
    var id: Self { self }
}

struct ContentView: View {
    @State var search: String = ""
    
    var body: some View {
        NavigationView {
            List(search.isEmpty ? Test.allCases : Test.allCases.filter{[=10=].rawValue.localizedCaseInsensitiveContains(search)}, id: \.self) { item in
                NavigationLink(destination: Text(item.rawValue)) {
                    Text(item.rawValue)
                }
            }
            .searchable(text: $search, placement: .navigationBarDrawer(displayMode: .always), prompt: "Search")
            .navigationTitle("Searchable")
            .navigationBarTitleDisplayMode(.inline)

        }
    }
}

我找到了一个简单的解决方法,下载 Xcode 13.2.1。在 iOS 15.4+ 上 运行 时没有错误。从 13.3 之前的 Xcode 版本编译似乎可以解决问题。我以为我需要最新版本的 Xcode 才能提交 App Store。