どうも、ちょげ(@chogetarou)です。
DatePickerで操作する日付の変数をオプショナル型にする方法を紹介します。
方法

DatePickerの日付の範囲を設定するには、Bindingを使います。
まず、変数をオプショナル型にします。
@State var selectDate : Date? = nil
次に、DatePickerの引数「selection」に、「Binding<Date>()」を指定します。
そして、Biding<Date>の引数「get」に変数が「nil」だった時に代わりに使う日付を指定し、引数「set」に日付の代入を指定します。
DatePicker("",
selection: Binding<Date>(
get: { self.selectDate ?? Date() }, //nilの場合は、代わりの日付を
set: { self.selectDate = $0 } //選択した日付の代入
)
)
Bindingを使うことで、DatePickerでオプショナル型を使うことが出来ます。
使用例
struct ContentView: View {
@State var selectDate : Date? = nil
var body: some View {
VStack {
DatePicker("Select Date",
selection: Binding<Date>(get: { self.selectDate ?? Date() }, set: { self.selectDate = $0 })
)
.padding()
}
}
}
コメント