我正在尝试为正在使用的应用程序实现功能,以便当用户点击选项卡两次时,它将自动将用户带回到该选项卡的初始视图。
假设我希望以下“设备”选项卡按钮可以双击重新加载视图:
这是我一直试图用来解决此问题的代码:
Tab View {
DevicesScreen()
.tabItem {
Image(systemName: "tv")
Text("Devices")
}.onTapGesture(count: 2) {
DevicesScreen()
}
}.font(.headline)
但是,onTapGesture的结果不会切换视图,因此我想问一下是否还有其他解决方案。
谢谢。
答案 0 :(得分:1)
尝试一下:
struct ContentView: View {
@State var selectedTab: Tab = .home
var body: some View {
TabView(selection: $selectedTab) {
Text("Home Screen")
.tabItem { Text("Home") }
.tag(Tab.home)
Text("More Screen")
.tabItem { Text("More") }
.tag(Tab.more)
Text("bla Screen")
.tabItem { Text("bla") }
.tag(Tab.bla)
}.onTapGesture(count: 2) {
if self.selectedTab == .more {
self.selectedTab = .home
}
}
}
}
extension ContentView {
enum Tab: Hashable {
case home
case more
case bla
}
}