首页 > 解决方案 > 导航回列表 (SwiftUI) 后,选定列表行的背景保持灰色(选中)。iOS14 + Xcode12

问题描述

从详细视图返回后,选定的行保持灰色。在模拟器和真实设备上都发生,仅在 iOS 14 上。有谁知道如何删除它,使其行为与 iOS 13 相同(不保持选中状态)?这是项目中唯一的代码。(没有其他导航或任何东西)。

let items = ["item1", "item2"]

struct ContentView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("Hello")
                
                List(items, id: \.self) { item in
                    NavigationLink(destination: Text(item)) {
                        Text(item)
                    }
                }
                .listStyle(PlainListStyle())
            }
        }
//        .navigationViewStyle(StackNavigationViewStyle()) // didn't solve the problem
    }
}

这是它的样子

标签: swiftuiios14xcode12

解决方案


这就是诀窍。只需创建一个 ZStack 并在上方放置一个空按钮。

var body: some View {
    List {
        ForEach(data, id: \.self) { item in
            ZStack {
                Button("") {}
                NavigationLink(destination: ItemView(item: item)) {
                    ItemRow(item: item)
                }
            }
        }
    }
}

推荐阅读