【发布时间】:2020-06-21 21:04:07
【问题描述】:
我正在尝试在 SwiftUI 中实现,您在一个选项卡上的视图中按下一个按钮,它会更改为另一个选项卡。我会使用 UIKit:
if [condition...button pressed] {
self.tabBarController!.selectedIndex = 2
}
但是在 SwiftUI 中是否有等效的方法来实现这一点?
【问题讨论】:
我正在尝试在 SwiftUI 中实现,您在一个选项卡上的视图中按下一个按钮,它会更改为另一个选项卡。我会使用 UIKit:
if [condition...button pressed] {
self.tabBarController!.selectedIndex = 2
}
但是在 SwiftUI 中是否有等效的方法来实现这一点?
【问题讨论】:
您只需要更新一个负责选择的@State 变量。但是,如果您想从子视图中执行此操作,您可以将其作为 @Binding 变量传递:
struct ContentView: View {
@State private var tabSelection = 1
var body: some View {
TabView(selection: $tabSelection) {
FirstView(tabSelection: $tabSelection)
.tabItem {
Text("Tab 1")
}
.tag(1)
Text("tab 2")
.tabItem {
Text("Tab 2")
}
.tag(2)
}
}
}
struct FirstView: View {
@Binding var tabSelection: Int
var body: some View {
Button(action: {
self.tabSelection = 2
}) {
Text("Change to tab 2")
}
}
}
【讨论】:
Published 变量