gpt4 book ai didi

ios - TabView (SwiftUI) : Respond onTab on an already active tabItem

转载 作者:行者123 更新时间:2023-12-01 15:41:13 24 4
gpt4 key购买 nike

我有一个包含 TabView 的 ContentView.swift。

View1 中有一个带有一些 subview 的 NavigationView。
View2 只是一个 View 。

当按下第一个 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)
}
}
}

关于ios - TabView (SwiftUI) : Respond onTab on an already active tabItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61041114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com