swiftui - 如何获取在 TabView 中选择了哪个视图的值?
问题描述
我目前正在使用 SwiftUI 开发应用程序。
这个应用程序有 2 个视图控制一个选项卡视图。
我想获得一个关于在 TabView 中选择了哪个视图的值。
有没有办法做到这一点?
内容视图.swift
import SwiftUI
struct ContentView: View {
var body: some View {
TabView {
FirstView()
.tabItem {
Text("First")
}.tag(1)
SecondView()
.tabItem {
Text("Second")
}.tag(2)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
FirstView.swift
import SwiftUI
struct FirstView: View {
var body: some View {
Text("FirstView")
}
}
struct FirstView_Previews: PreviewProvider {
static var previews: some View {
FirstView()
}
}
SecondView.swift
import SwiftUI
struct SecondView: View {
var body: some View {
Text("SecondView")
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView()
}
}
Xcode:版本 11.7
斯威夫特:斯威夫特 5
解决方案
您需要使用选择,如下所示
注意:选择应该与用于标签的类型相同(并使用标签中的相应值以编程方式选择特定选项卡)
struct ContentView: View {
@State private var selectedTab = 1 // default selection
var body: some View {
TabView(selection: $selectedTab) { // << here !!
FirstView()
.tabItem {
Text("First")
}.tag(1)
SecondView()
.tabItem {
Text("Second")
}.tag(2)
}
}
}
推荐阅读
- javascript - Webpack如何将模块填充在窗口关闭中?
- python - 来自 url 的 Json - 数组中的数组
- docker - 有没有办法通过 Jenkins 插件将 docker 图像上传到工件?
- kubernetes - Google Kubernetes Engine Service loadBalancerSourceRanges 不允许在 IP 范围内连接
- python - 如何避免在 django 的测试目录中循环导入?
- lightgbm - LightGBM ranker 函数使用什么评估指标
- python - 当将字典键作为参数传递时,如何将函数结果返回到 Python 中的字典值?
- c# - 如何在 WPF 应用程序中的 SOAP 客户端的“Set-Cookie”标头响应的新请求中设置“Cookie”标头
- javascript - 使用 vue.js 从 api 调用中渲染转义的 HTML
- android - 使用 Retrofit2 从 json 资源中检索数据