Gar*_*abo 10 ios swift swiftui swiftui-tabview
我试图跟踪用户在 SwiftUI 中所在的页面,TabView但PageTabViewStyle我无法找出跟踪页面索引的最佳方法?using.onAppear效果不佳,因为它会被多次调用,并且即使不在屏幕上,页面 2 和 3 也会被调用。
@State var pageIndex = 0
var body: some View {
VStack {
Text("current page = \(0) ")
TabView {
Text("First")
.onAppear {
pageIndex = 0
}
Text("Second")
.onAppear {
pageIndex = 1
}
Text("Third")
.onAppear {
pageIndex = 2
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
}
}
}
Run Code Online (Sandbox Code Playgroud)
jn_*_*pdx 16
您可以将绑定selection传递给TabView并用于tag识别页面:
struct ContentView: View {
@State var pageIndex = 0
var body: some View {
VStack {
Text("current page = \(pageIndex) ")
TabView(selection: $pageIndex) {
Text("First").tag(0)
Text("Second").tag(1)
Text("Third").tag(2)
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在您的原始代码中,它总是会说当前页= 0,因为您没有将变量插入pageIndex到字符串中
| 归档时间: |
|
| 查看次数: |
6798 次 |
| 最近记录: |