微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何取消选择 NavigationLink 中的列表按钮

如何解决如何取消选择 NavigationLink 中的列表按钮

我有一个包含 NavigationLink 中的列表项之一的列表,因为它需要在点击后移动到详细信息视图。当我从该详细信息视图返回时,列表按钮仍处于选中状态。在 SwiftUI 之前,我只是告诉 .isSelected 等于 false,但我不知道如何在 SwiftUI 中做到这一点?

List {
      NavigationLink(destination: SettingsstartdayView()){
          HStack {
             Text("Start Day Notification")
             Spacer()
             Text(startDayNotificationSetting)
                 .font(.subheadline)
                 .foregroundColor(Color.gray)
                 .multilineTextAlignment(.trailing)
          }
     }
}
开始列表视图 详细视图后,返回

First

row

此视图正在通过以下方式加载到主应用程序的视图中:

NavigationView{
            TabView(selection: $isSelectedTab) {
                 SettingsView()
                   .tabItem{
                   }.tag(1)

这是一个公共项目,其中包含我正在处理的完整示例:https://gitlab.com/jammyman34/test-sounds-project

转到“设置”选项卡,然后单击顶部列表项转到详细信息页面。请注意您单击的列表在返回时如何保持选中状态。除非您切换到另一个选项卡,否则它不会清除。

解决方法

此处的问题是设置视图中 Text 上方的 List - 报告了错误 here

相反,您可以使用原生导航标题并将其附加到 TabView。

struct SettingsHomeView: View {
    
    @State var startDayNotificationSetting: String = "8:30AM"
    @State var appVersion: String = "0.01"
    
    var body: some View {
        // no `Text` above `List`
        List {
            NavigationLink(destination: SettingsStartdayView()){
                HStack {
                    Text("Start Day Notification")
                    Spacer()
                    Text(startDayNotificationSetting)
                        .font(.subheadline)
                        .foregroundColor(Color.gray)
                        .multilineTextAlignment(.trailing)
                    //Image(systemName: "chevron.right")
                }
            }
        }
    }
}
struct ContentView: View {
    
    @State private var isSelectedTab = 1 // select the first tab
    
    var body: some View {
        NavigationView{
            TabView(selection: $isSelectedTab) {
                // ...
            }
            // control displaying the title depending on the `isSelectedTab`
            .navigationTitle("Settings")
            .navigationBarHidden(isSelectedTab == 1)
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。