为什么在 SwiftUI 中单击列表项后列表视图项会变灰?

问题描述

我在 SwiftUI 中有列表项,当我单击列表项时,返回列表视图菜单时它保持灰色。有什么解决办法吗?

菜单视图:

struct DarkMenuView: View {
    @AppStorage("isDarkMode") private var isDarkMode = false
    
    var body: some View {
        vstack{
            Picker("Mode",selection: $isDarkMode) {
                Text("Light")
                    .tag(false)
                
                Text("Dark")
                    .tag(true)
            }.pickerStyle(SegmentedPickerStyle())
            .padding()
            List(0..<5,id: \.self) { num in
                NavigationLink(destination: Text("\(num)")) {
                Text("\(num)")
                    
                }
                    
            }
        }.navigationTitle("Dark Menu")
        .onAppear() {
                    print("DarkMenuView.onAppear()")
                }
    }
}

截图:

enter image description here

解决方法

您可以通过将选择样式设为 None 来实现这一点

.onAppear {
    UITableViewCell.appearance().selectionStyle = .none
}
,

在 ios-15 中运行良好。您可以尝试在 NavigationLinks 中添加“.isDetailLink(false)”。