Switch Tabs Programmatically in SwiftUI
                
                  Written by Team Kodeco
              
            
          Have you ever wanted to switch tabs in a tab view programmatically? Maybe you want to show a certain tab based on some user action or state change. In SwiftUI, this is easily achievable using the selection binding.
First, make sure your tab view has a selection binding that can be updated dynamically. For example, you might have a state variable called selectedTab:
struct ContentView: View {
  @State private var selectedTab: Int = 0
  var body: some View {
    VStack {
      Button("Switch to second tab") {
        selectedTab = 1
      }
      .padding()
      TabView(selection: $selectedTab) {
        Text("First Tab")
          .tabItem {
            Image(systemName: "1.circle")
            Text("Tab 1")
          }
          .tag(0)
        Text("Second Tab")
          .tabItem {
            Image(systemName: "2.circle")
            Text("Tab 2")
          }
          .tag(1)
      }
    }
  }
}
Your preview should look like this:
 
    
In this code, the ContentView has a state variable selectedTab that keeps track of which tab is currently selected. You use the TabView with a selection binding to selectedTab to update the tab based on the state variable. The tags in the tab items correspond to the possible values of selectedTab.
There is also a button at the top of the view. When this button is tapped, it sets selectedTab to 1, which corresponds to the second tab. This makes the TabView switch to the second tab programmatically.
And that’s it! Just like pressing a button on a remote control changes the channel, updating the selectedTab binding changes the current tab being displayed. With just a few lines of code, you can switch tabs programmatically in SwiftUI.