[SwiftUI]DatePickerでオプショナル型を使うには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

DatePickerで操作する日付の変数をオプショナル型にする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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

コメント

タイトルとURLをコピーしました