Solución:
NavigationLink
debiera ser dentro NavigationView
. La barra de herramientas no está en NavigationView
, ponle botones.
Asumiendo que tienes algo en el padre
NavigationView {
MyView()
}
aquí hay una solución:
struct MyView: View {
@ObservedObject var viewModel = MyViewModel()
@State private var showNew = false
var body: some View {
List(viewModel.data, id: .name) { data in
NavigationLink(destination: MyDetailView(data: data.name)) {
Text(data.name)
}
}
.listStyle(InsetGroupedListStyle())
.background(
NavigationLink(destination: MyDetailView(), isActive: $showNew) {
EmptyView()
}
)
.edgesIgnoringSafeArea(.all)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("New Element") {
self.showNew = true
}
}
}
}
}
Descubrí que usar un HStack con un texto vacío como primer elemento también funciona, permite que el navigationLink actúe correctamente.
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
HStack {
Text("")
NavigationLink(destination: SettingsView()) {
Image(systemName: "gear")
.font(.title)
}
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)