Как я могу перейти к различным представлениям? - PullRequest
0 голосов
/ 11 апреля 2020

Я учусь пользоваться 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)

Возможно ли это связать выбор пользователя с разными взглядами? Я имею в виду, если пользователь выбирает другой город, тип комнаты и тип квартиры, как я могу связать эти варианты с различными видами? В каждом представлении должны отображаться результаты, основанные на различном выборе, сделанном пользователем в средствах выбора выше. Как я могу это сделать?

Заранее спасибо :))

1 Ответ

0 голосов
/ 11 апреля 2020

Вы можете открыть новые представления, используя .sheet (...). Ограничение состоит в том, что вы можете иметь только один из них. Так что вам придется сделать что-то вроде этого:

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

В вашем случае я бы пересмотрел всю структуру. Используйте только одну опцию листа и передайте выбор, сделанный пользователем. А внутри нового представления представьте данные в выбранном виде.

...