struct ExpenseItem:Identifiable {
let id = UUID()
let name:String
let type:String
let amount:Int
}
class Expenses: ObservableObject {
@Published var items = [ExpenseItem]()
}
struct ContentView: View {
@ObservedObject var expenses = Expenses()
var body: some View {
NavigationView {
List {
ForEach(expenses.items) { item in
Text(item.name)
}.onDelete(perform: removeItems)
}.navigationBarTitle("iExpense")
.navigationBarItems(trailing: Button(action: {
let expense = ExpenseItem(name: "Test", type: "Personal", amount: 5)
self.expenses.items.append(expense)
}){
Image(systemName: "plus")
}
)
}
}
func removeItems(at offset: IndexSet) {
expenses.items.remove(atOffsets: offset)
}
}
From: SwiftUI 100天