[英]TabView (SwiftUI): Respond onTab on an already active tabItem
我有一个包含 TabView 的 ContentView.swift。
View1 中有一个带有一些子视图的 NavigationView。 View2 只是一个视图。
当按下第一个 tabItem 时,我想执行一些操作(始终返回 View1,即使在 View1 的 childView 中也是如此)。 即使它已经是活动的 tabItem。
我尝试了如下所示的 onTapGesture,它似乎没有做任何事情。 在“.tag(0)”之前添加它也没有改变任何东西:
TabView {
View1()
.onTapGesture {
print("Test")
}
.tabItem {
Image(systemName: "doc.plaintext")
.font(.system(size: 25))
Text("View1")
}.tag(0)
View2()
.tabItem {
Image(systemName: "person.crop.circle")
.font(.system(size: 25))
Text("View2")
}.tag(1)
这是可能的方法。 使用 Xcode 11.4 / iOS 13.4 测试
struct TestTabSelectionAction: View {
@State private var selectedTab = 0
var body: some View {
let selection = Binding<Int>(
get: { self.selectedTab },
set: { self.selectedTab = $0
print("Pressed tab: \($0)")
if $0 == 0 {
// <<< your action here !!
}
})
return TabView(selection: selection) {
View1()
.tabItem {
Image(systemName: "doc.plaintext")
.font(.system(size: 25))
Text("View1")
}.tag(0)
View2()
.tabItem {
Image(systemName: "person.crop.circle")
.font(.system(size: 25))
Text("View2")
}.tag(1)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.