【发布时间】:2020-07-11 22:47:58
【问题描述】:
我正在尝试制作一个简单的应用程序,当按下“添加”按钮时,它会在列表中添加一个新单元格,其中包含标题和创建日期。我使用 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()))
}
}
}
【问题讨论】:
标签: swift date mvvm swiftui dateformatter