gpt4 book ai didi

ios - 如何在单击按钮时以编程方式切换选项卡?在 swiftui 中

转载 作者:行者123 更新时间:2023-12-01 19:29:36 24 4
gpt4 key购买 nike

我已经在我的代码中实现了标签栏。我在我的第一个选项卡中看到了所有按钮,我想从该按钮以编程方式切换到第二个选项卡。当我使用 navigationView 时,它会创建另一个标签栏并移动到该屏幕,这会更改 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)
}
}
}

导航代码:

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

最佳答案

这是一个可能方法的演示 - 这个想法是将选项卡选择的绑定(bind)移动到带有按钮的 View 中,因此按钮操作可以改变它。

使用 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 }
}
}

关于ios - 如何在单击按钮时以编程方式切换选项卡?在 swiftui 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63741620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com