在导航栏下而不是上下文菜单下的WatchOS SwiftUI隐藏按钮

时间:2020-10-07 21:30:12

标签: swiftui watchos-7

SwiftUI,WatchOS 7不再有联系菜单。 我想在监视屏幕的导航栏下隐藏一个排序列表按钮。我的屏幕当前只是一个简单的“轮播”列表和ID,因此可以通过将用户设置为默认值,然后按日期或名称对列表进行排序,然后重新加载列表。

NavigationView {
            List {
                Button {
                    if UserDefaults.standard.integer(forKey: "sortBy") == 0 {
                        UserDefaults.standard.setValue(1, forKey: "sortBy")
                        sortTable()
                    } else {
                        UserDefaults.standard.setValue(0, forKey: "sortBy")
                        sortTable()
                    }
                } label: {
                    HStack {
                        if UserDefaults.standard.integer(forKey: "sortBy") == 0 {
                            Spacer()
                            Image(systemName: "calendar.circle")
                            Text("Date order")
                            Spacer()
                        } else {
                            Spacer()
                            Image(systemName: "person.circle")
                            Text("Name order")
                            Spacer()
                        }
                    }
                }
                ForEach(sortedUsers, id: \.contactID) {
                    UserRow(user: $0)
                }
            }
        }
        .navigationBarTitle("APP NAME")
        .navigationBarBackButtonHidden(true)
        .listStyle(CarouselListStyle())

当前,该按钮出现在列表顶部,并且它的工作方式是重新加载列表。我将@state用于名为sortedUsers的数组。我想知道首先如何隐藏按钮。同样,在下拉时,使按钮与列表稍微分开,并固定在屏幕顶部,就像在邮件应用程序中一样。谢谢。

0 个答案:

没有答案