Как в Swift программно выбрать навигационную ссылку в списке

В разделенном представлении навигации Swift после того, как все данные были загружены из основных данных (на что указывает переменная isLoading, равная false), представление прогресса перестает отображаться, но подробное представление теперь пусто. Я бы хотел, чтобы на этом этапе отображалось представление «Сводка». Я думаю, что для этого потребуется программно установить для выбора списка значение «Домой». Как мне нужно изменить мой код, чтобы выполнить это? Ниже приведен код.

      struct ContentView: View {
    @State private var selection: String?
    @ObservedObject private var vooVM: VOOViewModel
    @ObservedObject private var vfiaxVM: VFIAXViewModel
    @ObservedObject private var prinVM: PrincipalViewModel
    init(vooVM: VOOViewModel, vfiaxVM: VFIAXViewModel, prinVM: PrincipalViewModel) {
        self.vooVM = vooVM
        self.vfiaxVM = vfiaxVM
        self.prinVM = prinVM
    }
    let myList = ["Home", "VOO Chart", "VOO List", "VFIAX Chart", "VFIAX List", "Principal Chart", "Principal List"]
    var body: some View {
        NavigationSplitView {
            List(myList, id: \.self, selection: $selection) { listItem in
                NavigationLink(value: listItem) {
                    Text(listItem)
                } // end navigation link
            } // end list
            .navigationSplitViewColumnWidth(250)
        } detail: {
            if vooVM.isloading == true || vfiaxVM.isloading == true || prinVM.isloading == true {
                Spacer()
                ProgressView()
                    .navigationSplitViewColumnWidth(950)
                Spacer()
            } else if selection == "Home" {
                Summary(vooVM: vooVM, vfiaxVM: vfiaxVM, prinVM: prinVM)
                    .navigationSplitViewColumnWidth(950)
            } else if selection == "VOO Chart" {
                LineChart(passedInArray: vooVM.values1)
                    .navigationSplitViewColumnWidth(950)
            } else {
                Text("Select an option in the list")
            }
            Spacer()
        }
        .frame(width: 1200,height: 900, alignment: .center)
    } // end body
} // end struct


0 ответов

Другие вопросы по тегам