Neue Liste in SwiftUI?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Erkläre doch mal genau, was beim Anklicken eines Punktes passieren soll? Mit NavigationLink wird eine neue View aufgerufen, die auch wieder eine List haben kann.

Hier noch mal ein erweitertest Beispiel mit Screenshot (in den Kommentaren geht das nicht).

var body: some View {
  NavigationView {
    List {
      Section("Physik") {
        NavigationLink("Geschwindigkeit") {
          Text("Geschwindigkeit")
        }
        NavigationLink("Strecke") {
          Text("Strecke")
        }
        NavigationLink("Beschleunigung") {
          Text("Beschleunigung")
        }
      }
      Section("Chemie") {
        NavigationLink("Formeln") {
          Text("Formeln")
        }
      }
      Section {
        NavigationLink("Bäume") {
          Text("Bäume");
        }
        NavigationLink {
          Text("Schildkröten")
        } label: {
          Label("Schildkröten", systemImage: "tortoise")
        } 
      } header: {
        Label("Biologie", systemImage: "leaf")
      }
    }
  }
  .navigationTitle("Fächer")
  .navigationBarTitleDisplayMode(.automatic)
  .navigationViewStyle(StackNavigationViewStyle())
}

Bild zum Beitrag

Woher ich das weiß:Berufserfahrung – Entwickle Anwendungen für iOS, iPadOS und macOS beruflich.
 - (Computer, programmieren, Swift)
PsySkill 
Fragesteller
 05.07.2022, 00:35

Ja, über diese Liste öffnet sich halt eine neues View, in welcher man diverse Sachen berechnen soll. Nun möchte ich aber unter der aktuellen Liste darunter eine neue haben wo man z.B Chemie-Formeln hat. Ich würde es ja gerne unter diesem Thread verbindlichen, allerdings kann ich keine Bilder hier hochladen.

Ich hoffe das du mir soweit folgen konntest. Vielleicht bin ich ja das alles schon von der Struktur komplett falsch angegangen, weshalb ich nicht weiterkomme, in JavaScript ist es mir halt auch passiert das es theoretisch funktioniert hätte aber die Struktur wie ich es Gestalten habe einfach suboptimal war.

0
Babelfish  05.07.2022, 08:57
@PsySkill

Du kannst nicht so ohne weiteres mehrere Listen auf eine View bringen. Jede Liste ist eine Scrollview und da gibt es nur Probleme, diese zu mischen.

Für so eine Unterteilung sind aber Sections da, die du schon bei dem Beispiel mit der Berechnung gesehen hast. Damit kannst du so was einfach logisch gruppieren.

var body: some View {
  NavigationView {
    List {
      Section("Physik") {
        NavigationLink("Geschwindigkeit") {
          Text("Geschwindigkeit")
        }
        NavigationLink("Strecke") {
          Text("Strecke")
        }
        NavigationLink("Beschleunigung") {
          Text("Beschleunigung")
        }
      }

      Section("Chemie") {
        NavigationLink("Formeln") {
          Text("Formeln")
        }
      }
    }
  }
  .navigationViewStyle(StackNavigationViewStyle())
  .navigationTitle("Fächer")
}
0
PsySkill 
Fragesteller
 05.07.2022, 09:35
@Babelfish

Du rettest mein Gehirn wieder…Tausendfacher Dank an dich

1