У меня есть меню, которое я отображаю с помощью SwiftUI List
. Пример на изображении ниже:
Я хочу использовать NavigationLink с различными видами назначения. Я пытался использовать оператор switch
в блоке списка, но XCode выдает ошибку:
Closure containing control flow statement cannot be used with function builder 'ViewBuilder'
Вот мой код ниже:
struct HomeView: View {
enum MenuItem: String, CaseIterable, Identifiable {
var id : MenuItem {
self
}
case firstCase = "Staff"
case secondCase = "Projects"
case thirdCase = "Invoices"
}
var body: some View {
NavigationView {
List(MenuItem.allCases) { itemText in
switch itemText {
case .firstCase:
NavigationLink(destination: StaffDetail()) {
HomeMenuRow(itemText: itemText)
}
break
case .secondCase:
NavigationLink(destination: ProjectsDetail()) {
HomeMenuRow(itemText: itemText)
}
break
case .thirdCase:
NavigationLink(destination: InvoicesDetail()) {
HomeMenuRow(itemText: itemText)
}
break
}
}
.navigationBarTitle(Text("Menu"))
}
}
}
Похоже, найти решение здесь но не уверен, как использовать его в List
объекте.