我正在尝试在 SwiftUI 中实现,您在一个选项卡上的视图中按下按钮,它会更改为另一个选项卡。我会用 UIKit:
if [condition...button pressed] {
self.tabBarController!.selectedIndex = 2
}
Run Code Online (Sandbox Code Playgroud)
但是在 SwiftUI 中是否有等效的方法来实现这一点?
我在我的代码中实现了标签栏。我在第一个选项卡中看到了所有按钮,我想从该按钮以编程方式切换到第二个选项卡。当我使用 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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
导航代码:
NavigationLink(destination: AppTabNavigation(selection: Tab.home), isActive: self.$isActiveTabbar){
Text("")
} .isDetailLink(false)
Run Code Online (Sandbox Code Playgroud)