Как установить значение по умолчанию NavigationView? - PullRequest
0 голосов
/ 08 января 2020


У меня есть следующий код:

import SwiftUI


struct DetailView: View {
    let text: String

    var body: some View {
        Text(text)
            .frame(maxWidth: .infinity, maxHeight: .infinity)
    }
}


struct ContentView: View {
    private let names = ["One", "Two", "Three"]
    @State private var selection: String? = "One"

    var body: some View {
        NavigationView {
            List(selection: $selection) {
                ForEach(names, id: \.self) { name in
                    NavigationLink(destination: DetailView(text: name)) {
                        Text(name)
                    }
                }
            }

            DetailView(text: "Make a selection")
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Я думал, что установка «Выделение» на «Один» - это ответ, но он выделяет только «Один» (кстати, серым цветом). ). enter image description here

Требуемое поведение при запуске: enter image description here

1 Ответ

1 голос
/ 08 января 2020

Должно работать добавление выделения в заполнитель selection ?? "Make a selection", то есть:

struct ContentView: View {
    private let names = ["One", "Two", "Three"]
    @State private var selection: String? = "One"

    var body: some View {
        NavigationView {
            List(selection: $selection) {
                ForEach(names, id: \.self) { name in
                    NavigationLink(destination: DetailView(text: name)) {
                        Text(name)
                    }
                }
            }

            DetailView(text: selection ?? "Make a selection")
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...