NavigationLink ausgegraut

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NavigationLink ausgegraut

    Guten Morgen,
    in habe eine SwiftUI Anwendung, welche einer Übersicht mit Rennstrecken anzeigt entwickelt.
    [Blockierte Grafik: https://ibb.co/84r4hCD]
    Bei dieser habe ich nun auch eine Suche implementiert, damit man schneller eine bestimmte Strecke finden kann, funktioniert so weit auch.
    [Blockierte Grafik: https://ibb.co/yWQ1Swt]
    Jetzt möchte ich natürlich auch, dass die Suchergebnisse anklickbar sind, also habe ich diese in einen NavigationLink gepackt.
    Sobald ich das aber mache, werden die Suchergebnisse ausgegraut und der Navigation Link funktioniert auch nicht.
    [Blockierte Grafik: https://ibb.co/9vHkr4H]
    Und so langsam bin ich mit meinem Latein am Ende, vielleicht kennt jemand von euch ja das Problem und weiß wie ich es lösen kann.
    Anbei etwas Sourcecode zum Ausprobieren:

    Main Klasse:

    Quellcode

    1. import SwiftUI
    2. struct TracksView2: View {
    3. var tracks: [Track] = tracksData
    4. @State private var searchText: String = ""
    5. var filtered : [Track] {
    6. if searchText.isEmpty {
    7. return tracks
    8. } else {
    9. return tracks.filter({ $0.search(searchText) })
    10. }
    11. }
    12. var body: some View {
    13. NavigationView {
    14. NavigationSearch(text: $searchText, searchResultsContent: {
    15. ForEach(filtered, id: \.id) { track in
    16. NavigationLink(destination: TrackDetailView(tracks: track)) {
    17. TrackRowView(track: track)
    18. }
    19. }
    20. })
    21. } //: NAVIGATION
    22. }
    23. }
    Alles anzeigen


    Datenmodell der Objekte:

    Quellcode

    1. import SwiftUI
    2. struct Track: Identifiable {
    3. var id = UUID()
    4. var title: String
    5. var headline: String
    6. var image: String
    7. var imagebig: String
    8. var gradientColors: [Color]
    9. var link: String
    10. var description: String
    11. var details: [String]
    12. func search(_ query: String) -> Bool {
    13. //let searchable = [title, headline, description] + details
    14. let searchable = [title]
    15. return searchable.filter({ $0.contains(query) }).count > 0
    16. }
    17. }
    Alles anzeigen
    Und ein Objekt:

    Quellcode

    1. import SwiftUI
    2. let tracksData: [Track] = [
    3. Track(
    4. title: "Spa-Francorchamps",
    5. headline: "Die Ardennenachterbahn ist für viele die faszinierenste Rennstrecke überhaupt. ",
    6. image: "road",
    7. imagebig: "preview",
    8. gradientColors: [Color("ColorBlueberryLight"), Color("ColorBlueberryDark")],
    9. link: "https://www.wikipedia.de/",
    10. description: """
    11. Bis
    12. """,
    13. details: ["7004m","8,50-18,50m", "21","100m"]
    14. ),
    Alles anzeigen

    Die NavigationSearch Klasse ist aus Mark van Wijnen's Medium Artikel.

    Ich freue mich auf eure Ratschläge :)
  • matz schrieb:

    c0ball schrieb:

    Ich freue mich auf eure Ratschläge
    Hi. Der zu navigierende Content View muss in eine NavigationView gepackt werden, sprich dein searchResultsContent
    Wenn ich alles im .overlay in einen NavigationLink packe, dann sind die Suchergebnisse nicht mehr ausgegraut, allerdings funktioniert die Verlinkung immer noch nicht. Außerdem ist dann die Startseite mit allen Strecke (Bild 1) komplett leer.