hi,
im doing Day 47 Challenge but i have a problem.
When i save new activity it wont append to [Activity] on main screen.
//
// ContentView.swift
// Learner
//
// Created by Filip Pokłosiewicz on 31/10/2023.
//
import SwiftUI
struct ContentView: View {
@State private var showingSheet = false
@State private var activities: [Activity] = [
Activity(title: "Nauka języka", description: "Codzienne ćwiczenia słownictwa."),
Activity(title: "Ćwiczenia fizyczne", description: "Bieganie, rower, siłownia"),
Activity(title: "Nauka programowania", description: "Swift lub SwiftUI")
]
var body: some View {
NavigationView {
List(activities) { activity in
VStack(alignment: .leading) {
Text(activity.title)
.font(.headline)
Text(activity.description)
.font(.subheadline)
}
}
.navigationTitle("Activities")
.toolbar {
Button {
showingSheet = true
} label: {
Image(systemName: "plus")
}
}
.sheet(isPresented: $showingSheet) {
AddActivity(activities: Activities())
}
}
}
}
#Preview {
ContentView()
}
//
// AddActivity.swift
// Learner
//
// Created by Filip Pokłosiewicz on 03/11/2023.
//
import SwiftUI
struct AddActivity: View {
@ObservedObject var activities: Activities
@State private var title = ""
@State private var description = ""
@Environment(\.dismiss) var dismiss
var body: some View {
NavigationView {
Form {
TextField("Title", text: $title)
TextField("Description", text: $description)
.padding(.bottom, 200)
} .navigationTitle("Add your activity")
.toolbar {
Button("Save") {
let item = Activity(title: title, description: description)
activities.items.append(item)
dismiss()
}
}
}
}
}
#Preview {
AddActivity(activities: Activities())
}
import Foundation
class Activities: ObservableObject {
@Published var items = [Activity]()
}
//
// ActivityItem.swift
// Learner
//
// Created by Filip Pokłosiewicz on 31/10/2023.
//
import Foundation
struct Activity: Identifiable {
var id = UUID()
var title: String
var description: String
}