我有以下代码片段。当我在选项卡之间滑动时,“FirstTabView”中的“selectedTab”会自动更新。但是,如果我将“selectedTab”更改为“SecondTabView”中所示的可选值,则“selectedTab”不会更新并始终显示 2。有人可以帮忙解释一下吗?
struct FirstTabView: View {
@State private var selectedTab: Int = 2
var body: some View {
VStack {
TabView(selection: $selectedTab) {
Text("Tab 1")
.tag(1)
Text("Tab 2")
.tag(2)
Text("Tab 3")
.tag(3)
}
.tabViewStyle(PageTabViewStyle())
Text(String(selectedTab))
}
}
}
struct SecondTabView: View {
@State private var selectedTab: Int?
var body: some View {
VStack {
TabView(selection: $selectedTab) {
Text("Tab 1")
.tag(1)
Text("Tab 2")
.tag(2)
Text("Tab 3")
.tag(3)
}
.tabViewStyle(PageTabViewStyle())
Text(String(selectedTab ?? 2))
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建一个新的非可选变量来绑定选择,然后“selectedTab”可以再次自动更新。但我检查了 SwiftUI 文档,选项卡视图确实接受可选值作为选择参数。
struct SecondTabView: View …Run Code Online (Sandbox Code Playgroud)