繁体   English   中英

SwiftUI 视图之间的导航

[英]Navigation between SwiftUI Views

我不知道如何使用按钮在视图之间导航。

我在网上找到的唯一东西是详细视图,但我不希望左上角有后退按钮。 我想要通过两个按钮连接两个独立视图,一个在第一个,一个在第二个。

此外,如果我要删除第二个视图上的按钮,我应该会卡在那里,返回第一个视图的唯一选择是让应用程序崩溃。

在 storyboard 中,我将创建一个带有动作TouchUpInSide()的按钮并指向首选视图 controller。

当您习惯了 storyboard 时,您还认为进入 SwiftUI 值得吗?

解决方案之一是在主视图中有一个@State变量。 此视图将根据@State变量的值显示其中一个子视图:

struct ContentView: View {
    @State var showView1 = false

    var body: some View {
        VStack {
            if showView1 {
                SomeView(showView: $showView1)
                    .background(Color.red)
            } else {
                SomeView(showView: $showView1)
                    .background(Color.green)
            }
        }
    }
}

然后将此变量传递给它的子视图,您可以在其中修改它:

struct SomeView: View {
    @Binding var showView: Bool

    var body: some View {
        Button(action: {
            self.showView.toggle()
        }) {
            Text("Switch View")
        }
    }
}

如果您想拥有两个以上的视图,您可以将@State var showView1设为enum而不是Bool

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM