У меня есть вкладка с помеченными элементами.
struct ContentView: View {
@ObservedObject var tabController = TabController()
var body: some View {
TabView(selection: $tabController.selectedTab) {
HomeView()
.tabItem{
Image(systemName: "house.fill")
.font(.system(size: 20))
Text("Home")
}.tag(0)
...
}
У меня есть ObservableObject
с переменной @Published selectedTab
и функцией для ее изменения.
Когда я звоню функция, она правильно печатает индекс вкладки, на которую я хочу переключиться, но вкладка не переключается. Кто-нибудь знает почему?
class TabController: ObservableObject {
@Published var selectedTab = 3
func changeTab(tabIndex: Int) {
self.selectedTab = tabIndex
print(selectedTab)
}
}
Вместо changeTab(tabIndex:)
Я также попытался напрямую изменить selectedTab
.
Редактировать: я вызываю changeTab (tabIndex :), например так:
struct DetailsView: View {
@ObservedObject var tabController = TabController()
var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 0) {
Button(action: {self.tabController.changeTab(tabIndex: 2)}) {
HStack {
Image(systemName: "bubble.left.fill")
.buttonIconModifier()
Text("Switch Tab")
}
}.modifier(ButtonStyle())
}
}
}
}