iOS: 'Bearbeiten'-Leiste sichtbar machen (nicht mehr in versteckter .bottomBar)

Der Start-Tab liegt in einer TabView; deren Tab-Balken verdeckte die
.bottomBar-Werkzeugleiste, deshalb war 'Bearbeiten' nicht auffindbar.
Jetzt eine eigene Leiste per safeAreaInset direkt ueber dem Tab-Balken.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-31 22:53:42 +02:00
parent 80aa857bb0
commit 6ddf6024f7

View File

@@ -30,7 +30,10 @@ struct LocalOverview: View {
anzeige anzeige
} }
} }
.toolbar { ToolbarItemGroup(placement: .bottomBar) { werkzeugleiste } } // Eigene Leiste statt `.bottomBar`: der Start-Tab liegt in einer TabView,
// deren Tab-Balken die `.bottomBar` verdecken würde. `safeAreaInset` legt
// die Leiste sichtbar direkt über den Tab-Balken.
.safeAreaInset(edge: .bottom) { werkzeugleiste }
.sheet(isPresented: $addShown) { .sheet(isPresented: $addShown) {
CardPickerView { neu in fuegeHinzu(neu) } CardPickerView { neu in fuegeHinzu(neu) }
} }
@@ -111,33 +114,41 @@ struct LocalOverview: View {
.pickerStyle(.menu) .pickerStyle(.menu)
} }
@ViewBuilder private var werkzeugleiste: some View { private var werkzeugleiste: some View {
if bearbeiten { VStack(spacing: 0) {
Button { addShown = true } label: { Label("Karte", systemImage: "plus") } Divider()
Spacer() HStack {
Menu { if bearbeiten {
Button("Dashboard hinzufügen", systemImage: "plus") { neuesDashboard() } Button { addShown = true } label: { Label("Karte", systemImage: "plus") }
if aktives != nil { Spacer()
Button("Umbenennen", systemImage: "pencil") { Menu {
renameText = aktives?.name ?? ""; renameShown = true Button("Dashboard hinzufügen", systemImage: "plus") { neuesDashboard() }
} if aktives != nil {
if config.dashboards.count > 1 { Button("Umbenennen", systemImage: "pencil") {
Button("Dashboard löschen", systemImage: "trash", role: .destructive) { renameText = aktives?.name ?? ""; renameShown = true
loescheDashboard() }
if config.dashboards.count > 1 {
Button("Dashboard löschen", systemImage: "trash", role: .destructive) {
loescheDashboard()
}
}
} }
} label: {
Label("Dashboards", systemImage: "rectangle.stack")
}
Spacer()
Button("Fertig") { bearbeiten = false }.fontWeight(.semibold)
} else {
Spacer()
Button { bearbeiten = true } label: {
Label("Bearbeiten", systemImage: "slider.horizontal.3")
} }
} }
} label: {
Label("Dashboards", systemImage: "rectangle.stack")
}
Spacer()
Button("Fertig") { bearbeiten = false }
} else {
Spacer()
Button { bearbeiten = true } label: {
Label("Bearbeiten", systemImage: "slider.horizontal.3")
} }
.padding(.horizontal)
.padding(.vertical, 10)
} }
.background(.bar)
} }
private func titel(_ karte: AppCard) -> String { private func titel(_ karte: AppCard) -> String {