如何在iOS 14、SwiftUI 2中以编程方式更改PageTabView?
我正在探索Xcode 12和SwiftUI 2.0中的新事物 我在Xcode 12、iOS 14和Swift UI 2中创建了一个带有TabView和PageTabViewStyle的pageview登录屏幕。我想添加下一步按钮时,点击它,页面应该移动到第二个视图。这里文本(“你好”)如何在iOS 14、SwiftUI 2中以编程方式更改PageTabView?,ios,swiftui,ios14,xcode12,Ios,Swiftui,Ios14,Xcode12,我正在探索Xcode 12和SwiftUI 2.0中的新事物 我在Xcode 12、iOS 14和Swift UI 2中创建了一个带有TabView和PageTabViewStyle的pageview登录屏幕。我想添加下一步按钮时,点击它,页面应该移动到第二个视图。这里文本(“你好”) struct OnBoardingView: View { var body: some View { TabView { Text("Hi")
struct OnBoardingView: View {
var body: some View {
TabView {
Text("Hi")
Text("Hello")
Text("Welcome")
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
下面是解决方案的演示。使用Xcode 12/iOS 14进行测试
struct OnBoardingView:View{
@状态私有变量selectedPage=0
var body:一些观点{
VStack{
HStack{
按钮(“”{如果选择页面<2{
带动画{selectedPage+=1}
} }
}
选项卡视图(选择:$selectedPage){
文本(“Hi”)。标记(0)
文本(“你好”)。标记(1)
文本(“欢迎”)。标签(2)
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(背景显示模式:。始终))
}
}
}
将按钮放在一个单独的结构视图中的一个页面内如何?@MatiasMasso您需要一个绑定
如中所示
struct OnBoardingView: View {
@State private var selectedPage = 0
var body: some View {
VStack {
HStack {
Button("<") { if selectedPage > 0 {
withAnimation { selectedPage -= 1 }
} }
Spacer().frame(width: 40)
Button(">") { if selectedPage < 2 {
withAnimation { selectedPage += 1 }
} }
}
TabView(selection: $selectedPage) {
Text("Hi").tag(0)
Text("Hello").tag(1)
Text("Welcome").tag(2)
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
}