SwiftUI-如何将Date()作为字符串传递给另一个视图?

时间:2020-01-27 09:46:53

标签: swift xcode date swiftui

首先我有以下代码:

@State private var date = Date()

var dateFormatter: DateFormatter {
    let formatter = DateFormatter()
    formatter.dateStyle = .long
    return formatter
}

然后在NavigationView中的窗体中有一个类似这样的日期选择器:

DatePicker(selection: $date, in: Date()..., displayedComponents: .date) {
    Text("Datum")
}

现在,我想将日期值作为字符串发送到这样的另一个视图:

Button("Add") {
    let item = ExpenseItem(validDate: self.date)
    self.expenses.items.append(item)
}

但是我得到了错误:

无法将类型为“日期”的值转换为预期的参数类型为“字符串”

那么,如何将带dateFormatter的第一部分分配给日期以使其成为字符串?我不明白。

1 个答案:

答案 0 :(得分:1)

考虑到快照代码应该是

Button("Add") {
    let item = ExpenseItem(validDate: self.dateFormatter.string(from: self.date))
    self.expenses.items.append(item)
}