SwiftUI Date Picker переходит на сегодняшнюю дату или отказывается менять - PullRequest
0 голосов
/ 24 марта 2020

Я видел пару уроков по этому, и я в основном скопировал и вставил код. Всякий раз, когда я пытаюсь изменить значение, как только оно останавливается, оно возвращается к исходной дате.

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()
    }
}

Вот ссылка на учебник по по выбору даты , хотя все другие в основном дословно совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...