[英]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.