Ios 从SwiftUI中的TabView获取所选选项卡索引的方法
我刚刚添加了TabView,它工作正常,但如果没有,我无法提取所选的选项卡索引。Ios 从SwiftUI中的TabView获取所选选项卡索引的方法,ios,swift,swiftui,Ios,Swift,Swiftui,我刚刚添加了TabView,它工作正常,但如果没有,我无法提取所选的选项卡索引。 我想我的代码保存得很好,不知道出了什么问题 struct DefaultTabbar: View { @State private var selectedItem = 1 // @State private var homeTabIcon = "tab_home" var body: some View { TabView(selection: $selectedIte
我想我的代码保存得很好,不知道出了什么问题
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 尝试不使用OnTap手势->它会停止正常的选项卡行为
或者您需要所选的索引吗?您可以对每个选项卡使用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)
}
}
它被改变了,只需要在需要的地方使用它。但您不能在
选项卡视图
上使用.ontap手势
。