como alternar a guia programaticamente no clique do botão em Swiftui

Jayesh joshi

Implementei a barra de guias em meu código. Eu vi todos os botões na minha primeira guia e, a partir desse botão, quero alternar para a segunda guia programaticamente. Quando eu uso o navigationView, ele cria outra barra de guias e se move para essa tela, o que altera o índice de navegação no swiftui.

struct AppTabNavigation: View {
    @State var selection: Tab = .dashboard

    var body: some View {
        TabView(selection: $selection) {
            NavigationView {
                FirstTabView()
            }.navigationBarHidden(true)
            .navigationBarBackButtonHidden(true)
            .navigationViewStyle(StackNavigationViewStyle())
            
            .tabItem {
                Label("Home", systemImage: "house.fill")
                    .accessibility(label: Text("Home"))
            }
            .tag(Tab.home)
            NavigationView {
                SecondView()
            }.navigationBarHidden(true)
            .navigationBarBackButtonHidden(true)
            .navigationViewStyle(StackNavigationViewStyle())
            
            .tabItem {
                Label("Home", systemImage: "house.fill")
                    .accessibility(label: Text("Home"))
            }
            .tag(second) 
        }
     }
   }

Código de navegação:

NavigationLink(destination: AppTabNavigation(selection: Tab.home), isActive: self.$isActiveTabbar){
    Text("")
} .isDetailLink(false)
Temperamento dele

Aqui está uma demonstração de uma abordagem possível - a ideia é mover a vinculação da seleção da guia para a exibição com botões, de forma que a ação do botão possa alterá-la.

Testado com Xcode 12 / iOS 14

enum Tab {
    case dashboard
    case home
    case second
}

struct AppTabNavigation: View {
    @State var selection: Tab = .home

    var body: some View {
        TabView(selection: $selection) {
            NavigationView {
                FirstTabView(tab: $selection)
            }.navigationBarHidden(true)
            .navigationBarBackButtonHidden(true)
            .navigationViewStyle(StackNavigationViewStyle())
            .tabItem {
                Label("Home", systemImage: "house.fill")
                    .accessibility(label: Text("Home"))
            }
            .tag(Tab.home)

            NavigationView {
                Text("SecondView")
            }.navigationBarHidden(true)
            .navigationBarBackButtonHidden(true)
            .navigationViewStyle(StackNavigationViewStyle())

            .tabItem {
                Label("Home", systemImage: "house.fill")
                    .accessibility(label: Text("Home"))
            }
            .tag(Tab.second)
        }
    }
}

struct FirstTabView: View {
    @Binding var tab: Tab
    var body: some View {
        Button("Go Second") { self.tab = .second }
    }
}

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como alternar o menu suspenso no clique do botão e fechar no clique externo?

Como alternar programaticamente entre% do% e% dopar% em foreach?

como alternar entre duas cores de fundo do mesmo botão no clique do botão

Clique em um botão programaticamente C #

Clique em um botão programaticamente C #

Como declaro o botão Clique em ouvir em um fragmento para alternar para uma atividade?

Como suavizar o fade in-out para alternar o texto usando o clique do botão?

Como alternar a visibilidade da camada geojson em openlayers 3 com o clique de um botão?

No botão, clique para abrir o arquivo do servidor em uma nova guia

Como seleciono uma guia com evento de clique com o botão direito do mouse no WPF

Como alternar o menu do celular após o clique?

Como alternar a visibilidade de uma div usando um botão, clique em

Como atualizar uma guia do notebook tkinter com um clique de botão?

SwiftUI - como alterar o alinhamento do texto do rótulo em Alternar?

Como substituir o clique do botão em c # (winForms)?

Como alternar a guia clicando no botão Salvar ou como vincular o botão Salvar para alternar a guia

Clique programaticamente em um botão em Xamarin.Forms

SwiftUI como atualizar uma única visualização de guia sem alternar a barra de guias

Acionar programaticamente o evento de clique do botão no Android

Abra uma nova guia no botão, clique em AngularJS

Como faço para alternar UIsegmentedControll programaticamente?

Como alternar o botão em vuejs

Como alternar a classe com um clique de botão?

Clique com o botão direito do mouse para que a tag âncora abra o link em uma nova guia

Android programaticamente aberto Configurações-> guia Segurança no clique de botão

Clique programaticamente em um botão GUI no Java Swing

Como selecionar programaticamente a guia BottomNavigationBar no Flutter em vez do retorno de chamada onTap integrado?

Newbie jQuery alternar / ocultar / mostrar no clique do botão

Como ter 2 funcionalidades em um botão, alterar dinamicamente a funcionalidade do clique do botão