App: der Tag-Schritt beim Anlegen erschien nie - jetzt geschoben statt aufgelegt

Nach dem Anlegen eines einzelnen Stuecks sollte das Tag-Blatt aufgehen. Es
kam nie. Ein zweites Blatt aus einem Blatt heraus ist hier gleich dreifach
riskant: ItemAddSheet traegt schon ein fullScreenCover (Lagerort scannen) -
zwei Praesentations-Modifikatoren am selben View vertragen sich in SwiftUI
nicht zuverlaessig - und das Formular wird selbst aus einer Section heraus
gezeigt. Vor beidem warnen ProductDetailView:349 und ItemViews:775 bereits
aus eigener Erfahrung.

Der Tag-Schritt wird deshalb in den ohnehin vorhandenen NavigationStack
geschoben. Ein Schub kennt keine dieser Fallen und ist fuer einen Schritt in
einem Ablauf ohnehin die passendere Form.

NFCSchreibenView bekommt dafuer ein optionales onFertig. Ohne Angabe
schliesst sie sich selbst wie bisher - der Aufruf aus der Stueck-Bearbeitung
bleibt unveraendert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-15 21:27:16 +02:00
co-authored by Claude Opus 5
parent d7002e2252
commit 38489a5217
2 changed files with 27 additions and 10 deletions
+10 -1
View File
@@ -7,6 +7,11 @@ import SwiftUI
/// steht – `vorrania://i/<UID>`.
struct NFCSchreibenView: View {
let item: Item
/// Was „Fertig" tun soll. Ohne Angabe schliesst die Ansicht sich selbst –
/// das ist der Fall, wenn sie aus der Stueck-Bearbeitung heraus aufgerufen
/// wird. Haengt sie als Schritt an einem Ablauf (gleich nach dem Anlegen),
/// muss stattdessen der ganze Ablauf enden.
var onFertig: (() -> Void)? = nil
@Environment(\.dismiss) private var dismiss
@@ -62,7 +67,11 @@ struct NFCSchreibenView: View {
}
.navigationTitle("NFC-Tag")
.navigationBarTitleDisplayMode(.inline)
.toolbar { ToolbarItem(placement: .topBarLeading) { Button("Fertig") { dismiss() } } }
.toolbar {
ToolbarItem(placement: .topBarLeading) {
Button("Fertig") { if let onFertig { onFertig() } else { dismiss() } }
}
}
}
private func schreiben() async {