【问题标题】:Navigation between SwiftUI ViewsSwiftUI 视图之间的导航
【发布时间】:2020-06-03 21:17:16
【问题描述】:

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

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

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

在情节提要中,我只需创建一个带有动作 TouchUpInSide() 的按钮并指向首选视图控制器。

另外,当您习惯了故事板时,您是否认为进入 SwiftUI 值得?

【问题讨论】:

    标签: swift xcode swiftui


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多