Я пытаюсь сделать простое приложение, которое при нажатии кнопки «Добавить» добавляет новую ячейку в список с заголовком и датой создания. Я создаю это практическое приложение с помощью mvvm, но не могу понять, как правильно использовать date и dateFormatter. У меня есть следующий код:
Модель:
struct Model: Identifiable {
var id = UUID()
var title: String
var createdAt = Date()
}
Модель представления:
class ViewModel: ObservableObject {
@Published var items = [Model]()
}
И представление:
struct ContentView: View {
static var DateFormatter: DateFormatter {
let formatter = self.DateFormatter
formatter.dateStyle = .long
return formatter
}
@EnvironmentObject var viewModel: ViewModel
var body: some View {
NavigationView {
List {
ForEach(0 ..< viewModel.items.count, id: \.self) { index in
VStack {
Text(self.viewModel.items[index].title)
Text(self.viewModel.items[index].createdAt)
}
}
}
.navigationBarTitle("Practice")
.navigationBarItems(trailing: Button(action: makeNew) {
Text("Add")
})
}
}
func makeNew() {
withAnimation {
viewModel.items.append(Model(title: "New Item \(viewModel.items.count + 1)", createdAt: Date()))
}
}
}