SwiftUI Variablen?
@State var Beispiel1=“1“
@State var Beispiel2=“2“
2 Antworten
Du kannst sie entweder direkt an die anderen View als Parameter weitergeben oder du definierst sie als @StateObject und gibst sie als @EnvironmentObject weiter. Dann stehen sie in allen Kind-Views zur Verfügung.
Klick auf den Link, da ist ein leicht nachvollziehbares Beispiel.
Doch, das funktioniert genau so. Wie sieht denn dein Code aus?
ebend nicht ich habe mehre views die sich wechseln wenn ein bestimmter Wert in eine Variable kommt und in diesen views möchte ich jetzt für zwei eine Variable machen
Was willst du von mir hören? Du hast dann einen Fehler gemacht und ohne deinen Code kann man da nicht helfen. Beachte, dass du nur Objekte vom Typ ObservableObject weitergeben kannst und keine primitiven Datentypen wie String. Strings oder anderen Typen muss du dann im ObservableObject als @Published deklarieren.
Was soll das sein oder werden?
Wie ich dir aber schon schrieb, kannst du Variablen auch direkt als Parameter an einer View weitergeben:
import SwiftUI
struct ContentView: View {
@State var Beispiel1: String = "Hallo Welt!"
var body: some View {
NavigationView {
NavigationLink("Nächste View") {
SecondView(value: Beispiel1)
}
}
}
}
struct SecondView: View {
let value: String
var body: some View {
VStack {
Text(value)
}
}
}
Wie kann ich programmieren, das wenn ich die App schließe die Änderungen gespeichert werden
So, wie ich es dir schon das letzte mal geschrieben habe. Für primitive Datentypen ist @AppStorage der einfachste Weg:
https://www.hackingwithswift.com/quick-start/swiftui/what-is-the-appstorage-property-wrapper
dazu wie blende ich die Statusleiste also Batterie Uhrzeit usw. aus?
Nö, keine Lust mehr. Wer dauernd nach einfachen Dingen fragt, anstatt mal eine Suchmaschine zu fragen oder die angebotenen Links durchzulesen, bekommt von mir keine Hilfe mehr. So wirst du als Entwickler auch nie vorankommen.
Dass du dann nicht mal einen [Hilfreich] oder [Danke] Knopf drückst, macht dich auch nicht sympathischer.
Du kannst die variablen als Binding in der Zielview anfordern:
Bsp:
struct testView: View{
@Binding var testVar: Bool
var body: some View{
//Hier deine Ansicht
}
}
In der View, die schon existiert, rufst du die View dann einfach so auf:
struct ContentView: View{
@State var testVar: Bool = false
var body: some View{
testView(testVar: $testVar)
}
}
Dies eignet sich aber nur, wenn dies 2 Views betrifft. Wenn du es in mehreren (mehr als 3 oder 4) Views machen willst, empfehle ich dir die Möglichkeit von Babelfish.
Also kannst du mir mal ein Beispiel machen fürs Verständnis