Как в 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