我已经有了使用SwiftUI的按钮的基本视图,并且在点击按钮时试图呈现一个新的屏幕/视图。我该怎么做呢?我是否想为此视图创建一个委托,以告诉应用程序SceneDelegate呈现一个新的视图控制器?
import SwiftUI
struct ContentView : View {
var body: some View {
VStack {
Text("Hello World")
Button(action: {
//go to another view
}) {
Text("Do Something")
.font(.largeTitle)
.fontWeight(.ultraLight)
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我制作了包含 3 个页面和“下一步”、“后退”按钮的示例应用程序。
当我单击“下一步”时,动画是完美的:旧内容位于左侧,新内容来自右侧。
然而,我正在努力使“返回”动画同时正常工作。
目标:当单击“返回”时,旧内容应位于右侧,新内容应位于左侧。(“后退”的动画应与“下一步”的动画相反)
知道如何实现这一点吗?
下面是“下一步”的完美过渡
struct ContentView: View {
@State var page: Int = 0
var body: some View {
VStack {
HStack {
Button(action: { withAnimation() { self.page = self.page - 1 } }) {
Text("Back")
}
Spacer()
Button(action: { withAnimation() { self.page = self.page + 1 }}) {
Text("Next")
}
}
Spacer()
if page == 0 {
PageView(name: "First page", color: .brown)
.transition(AnyTransition.asymmetric(insertion: .move(edge: .trailing), removal: .move(edge: .leading)))
} else if page == 1 { …Run Code Online (Sandbox Code Playgroud)