Apputveckling: SwiftUI

Precis börjat leka med SwiftUI och sitter med ett projekt där jag listar data från ett API.

Har två knappar per listrad (“Uppdatera” & “Ta bort”) men dessa knappar tar bara till sig id från det översta listobjektet.

Är det någon här som har förslag?

Är lite svårt att se en överblick utan kod :wink:

Leker ju med SwiftUI jag med ;). Suger dock på api:er. (Ej pysslat så mkt med JSON). Men skam den som ger sig

1 gillning

Nåt sånt här, rensade upp lite för att det inte skulle bli så mycket att läsa.

List(newsFetcher.newsS) { news in
            VStack (alignment: .leading) {

                Text("ID: \(news.id)") <-- Här ser jag att varje rad får rätt ID

                HStack (alignment: .bottom) {

                    Button(action: {}) {
                        Text("Uppdatera")
                    }
                    .onTapGesture {
                        self.updateNewsSheet = true
                    }
                    .sheet(isPresented: self.$updateNewsSheet) {
                        NavigationView {
                            UpdateNewsView(id: news.id, title: news.title, description: news.description, category: news.category, small_img: news.small_img, large_img: news.small_img, author: news.author, createdAt: news.createdAt)
                    }
            }
        }

Spontant:

Sätt en .onDelete(perform:delete) på din List

Sedan en func

func delete(at offsets: IndexSet) {
        ”DIN LISTA”.remove(atOffsets: offsets)
    
}

Okej, men kan jag använda .onDelete till annat också eller finns det fler såna? Typ .onEdit?

.xxx är ju olika modifiers… du når dom genom lättast genom ”add modifier” i listan till höger. Dock måste typ din lista, button eller text vara markerad.

https://www.hackingwithswift.com/quick-start/swiftui/how-to-let-users-delete-rows-from-a-list

Var får du upp det där? :thinking:

Listan längt till höger
Markera typ kodraden med Text("") välj inställningar på taben längt upp till höger

1 gillning

Jag älskar verkligen inte Xcode…

Någon bra idé på hur jag får med mig id ner till min funk då? Med funktionen på sidan du länkade så tas den ju bara bort från den laddade listan :roll_eyes:

jag har typ pysslat med swift sen september, swiftui sedan 2v… har verkligen ej koll på det här än om jag ska vara ärlig… mitt tips är tyvärr att leta dig igenom Stack Overflow eller så…tyvärr, önskar jag hade mer kunskap än vad jag har

1 gillning

Har testat det redan, verkar inte vara någon mer än jag som har det här problemet. Så det är väl busenkelt egentligen :laughing:

(newsFetcher.newsS(news.id)").remove(atOffsets: offsets)

Vet inte faktiskt

Gav upp och löste det såhär istället:

            List {
            ForEach(0..<newsFetcher.newsS.count, id : \.self ){ index in
                NavigationLink(destination:UpdateNewsView(
                                id: newsFetcher.newsS[index].id,
                                title: newsFetcher.newsS[index].title,
                                description: newsFetcher.newsS[index].description,
                                category: newsFetcher.newsS[index].category,
                                small_img: newsFetcher.newsS[index].small_img,
                                large_img: newsFetcher.newsS[index].small_img,
                                author: newsFetcher.newsS[index].author,
                                createdAt: newsFetcher.newsS[index].createdAt)){
                    HStack {
                       Text("Rubrik: \(newsFetcher.newsS[index].title) Innehåll: \(newsFetcher.newsS[index].description)")
                    }
                }
              }
           }

Skickar mig till en ny vy där jag la in radera-knappen.

1 gillning

Ja det är också en lösning :slight_smile:

1 gillning

Nä är väl inget jätte-fan av Xcode i heller. Det kan vara riktigt buggigt emellanåt.

Måste dock få mer kodvana och kodförståelse! Är en sak att bygga upp appen grafiskt, sen måste man ju även få saker att hända. Och utnyttja klasser, objekt, loopar, arrayer, dictionarys, lära sig @State, $Bindings, optionals, parametrar osv och där känner jag mig fortf jättevilsen. Som sagt, måste lära mig förstå koden betydligt bättre :slight_smile:

1 gillning

Kommer man från typ VS Code eller VS till Xcode så är det rätt brutalt när man inser hur bortskämd man blivit… och då är ändå VS rätt buggigt emellanåt.

Har du nåt projekt som du bygger på just nu?
Jag personligen tycker att man lär sig mycket på att studera andras kod, vilket också kan vara väldigt nyttigt för båda parter.

Vill du växla lite idéer så kan du alltid slänga iväg ett PM! :blush:

1 gillning

Alltid kul och lärorikt att bolla idéer. Har precis publicerat min första app ”ReptiLog” som är en app för reptilägare typ. Att kunna lista sina reptiler, lägga till när de ätit, ömsar mm samt lite info om kommande parningar, kullar och så. Samt att vi (grupparbete) bygger ett barnspel som använder sig av drag and drop gestures… får se om det blir ngn mer iOS app detta året. I början på nästa år går vi på android och Kotlin… sen till våren blir det 20v LiA … så kommer ju säker sitta och nöta både iOS och Kotlin appar så mkt jag hinner :slight_smile:

Men du vet vart jag finns med, alltid kul att snacka med folk som delar samma intresse :slight_smile:

1 gillning

Coolt! Jag kommer släppa en app för ett lokalt företag i öppen beta vid årsskiftet, så får man se hur lång tid det tar att komma vidare. Ibland finns det för få timmar på dygnet känns det som :joy:

Kul med kotlin, testade på det förra veckan och blev skogstokig :rofl:

2 gillningar