【问题标题】:How can I navigate to different views?如何导航到不同的视图?
【发布时间】:2020-04-10 21:24:30
【问题描述】:

我正在学习使用 Swiftui,我需要您的帮助。我的项目中存在以下选择器:

    Picker(selection: $selectedChoose, label: Text("Cosa ti serve?")) {
            ForEach(0 ..< choose.count) {
            Text(self.choose[$0]).tag($0)
    }
    }.pickerStyle(SegmentedPickerStyle())
            //WheelPickerStyle



    Picker(selection: $selectedCountry, label: Text("Città")) {
            ForEach(0 ..< country.count) {
            Text(self.country[$0]).tag($0)
    }
    }

    Picker(selection: $selectedAppartamento, label: Text("Tipo appartamento")) {
            ForEach(0 ..< appartamento.count) {
            Text(self.appartamento[$0]).tag($0)
    }
    }

    Picker(selection: $selectedCamera, label: Text("Tipo camera")) {
            ForEach(0 ..< camera.count) {
            Text(self.camera[$0]).tag($0)
    }
    }

在视图的末尾,我将添加 NavigationLink 的以下文本:

Text("Mostra annunci")
.font(Font.custom("Helvetica Neue", size: 15))
.foregroundColor(.white)
.frame(width: 150, height: 30).foregroundColor(Color.white)
.background(Color(red: 0.649, green: 0.18, blue: 0.117)).cornerRadius(10).padding(15)

是否可以将用户选择与不同的视图联系起来?我的意思是,如果用户选择不同的城市、房间类型和公寓类型,我如何将这些选择链接到不同的视图?每个视图都应该根据用户在上面的选择器中做出的不同选择来显示结果。我该怎么做?

提前谢谢你:)

【问题讨论】:

  • 我认为您需要有条件地呈现视图(if-else 语句)或将 NavigationView 与 NavigationLinks 一起使用。至于如何传递数据,您将必须创建自定义视图并将数据作为参数传递给它们,如果您从这些视图修改数据,则将绑定传递给这些变量。 EnvironmentObject 是一个非常有用的东西,你可能想看看它。

标签: swiftui user-input picker navigationlink pickerview


【解决方案1】:

您可以使用 .sheet(...) 弹出新视图。限制是您只能拥有其中之一。所以你必须做这样的事情:

        .sheet(isPresented: $showSheet) {
            if self.selectedCountry == "myCountry" {
                Text("myCountry")
            }
            else if self.selectedCountry == "yourCountry" {
                Text("yourCountry")
            }
            ... lots of other if else

在你的情况下,我会重新考虑整个结构。仅使用一张纸选项和 传递用户所做的选择。在新视图中显示所选数据。

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多