我使用SwiftIU创建了一个Apple Watch应用。该应用程序的主视图是一个列表,其中NavigationLink指向另一个列表。当我在内部列表之一中时,后退按钮不在视图顶部。 但是,当我从屏幕侧面滑动时(例如在iOS上),我会回到主视图。
是否可以将“后退”按钮添加回屏幕顶部?新手势是watchOS 7的新“后退按钮”吗?
Xcode 12.2(测试版3)。 Apple Watch S6(仿真器,7.1)和Apple Watch S5(真实,7.0)。 SwiftIU 2.0
主视图:
NavigationView {
List {
ForEach(listsModel.lists) { (list) in
NavigationLink(destination: ListView(list: list)
.environmentObject(list.rowsModel)) {
ListsRowView(list: list)
}
}
}
}
.onAppear {
listsModel.update()
}
.navigationTitle("ListsView.NavigationTitle")
内部视图:
List(rowsModel.rows) { (row) in
RowView(row: row, shouldUpdate: $shouldUpdate)
}
.navigationBarHidden(false)
.onAppear {
instantiateTimer()
rowsModel.update()
}
.onDisappear {
cancelTimer()
}
.onReceive(timer) { _ in
if shouldUpdate {
rowsModel.update()
}
}
.navigationTitle(list.name)
更新: 在Canvas模拟器中,有一个后退按钮,而在常规模拟器中则没有。 画布:
常规:
答案 0 :(得分:2)
删除NavigationView,因此您的代码应为:
List {
ForEach(listsModel.lists) { (list) in
NavigationLink(destination: ListView(list: list)
.environmentObject(list.rowsModel)) {
ListsRowView(list: list)
}
}
}
.onAppear {
listsModel.update()
}
.navigationTitle("ListsView.NavigationTitle")