我刚刚添加了 TabView,它工作正常,但如果它我无法获取选定的选项卡索引。
我想我的代码保持得很好,不知道出了什么问题。
struct DefaultTabbar: View {
@State private var selectedItem = 1
// @State private var homeTabIcon = "tab_home"
var body: some View {
TabView(selection: $selectedItem) {
FirstView()
.tabItem{
Image(systemName: "house")
Text("First Tab")
}
.tag(1)
SecondView()
.tabItem{
Image(systemName: "photo")
Text("Second Tab")
}
.tag(2)
}
.accentColor(.orange)
.onTapGesture {
print("selected tab: \(self.selectedItem)")
}
}
}
我在切换标签时只收到 0。
所选标签:0。
所选标签:0。
最佳答案
您可以对每个选项卡使用 onAppear 方法。它看起来很丑,但它的工作原理。
struct DefaultTabbar: View {
var lastSelectedTab = 0 {
didSet {
}
}
@State private var selectedItem = 1
var body: some View {
TabView(selection: $selectedItem) {
FirstView()
.onAppear(perform: {
lastSelectedTab = 0
})
.tabItem{
Image(systemName: "house")
Text("First Tab")
}
.tag(1)
SecondView()
.onAppear(perform: {
lastSelectedTab = 1
})
.tabItem{
Image(systemName: "photo")
Text("Second Tab")
}
.tag(2)
}
.accentColor(.orange)
}
}
关于ios - 在 SwiftUI 中从 TabView 获取所选标签索引的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60302920/