Я видел пару уроков по этому, и я в основном скопировал и вставил код. Всякий раз, когда я пытаюсь изменить значение, как только оно останавливается, оно возвращается к исходной дате.
import SwiftUI
struct DatePickerView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .long
return formatter
}
@State var selectedDate = Date()
var callback: ((String) -> Void)?
var body: some View {
VStack {
Text("Select A Date").font(.title)
DatePicker(selection: $selectedDate, in: Date()..., displayedComponents: .date) {
Text("")
}.padding(30)
Button(
action:{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let dateString = dateFormatter.string(from: self.selectedDate)
self.callback!(dateString)
self.presentationMode.wrappedValue.dismiss()
}, label: {
HStack{
Text("Select Date").padding(20.0)
.background(Color.white)
.foregroundColor(.themeGreen)
.cornerRadius(5)
.shadow(color: Color.black.opacity(0.2), radius: 3, x:0, y:2)
}.frame(minWidth:0, maxWidth: .infinity, minHeight: 25, maxHeight: 50)
})
.padding(EdgeInsets(top: 25, leading: 50, bottom: 25, trailing: 50))
}
}
}
struct DatePickerView_Previews: PreviewProvider {
static var previews: some View {
DatePickerView()
}
}
Вот ссылка на учебник по по выбору даты , хотя все другие в основном дословно совпадают.