UISheetPresentationControllerInSwiftUI
SwiftUIでUISheetPresentationControllerを利用するサンプルコードです。Sansan Builders Blogで書いた解説記事で使用しているサンプルコードとなります。
動作環境
- Xcode 13.2.1、iOS 15.1, 15.2にて動作確認をしています。
- いずれのサンプルコードも、Deployment Targetは15.0です(iOS 15.0以降のiOSで実行できます)。
サンプルコードの実行方法
- SheetSample.xcodeproj を開いて実行するとサンプルアプリケーションを起動できます。
シートで表示するUIの切り替え
ContentView.swift
内の下記ビルドフラグ設定を変更してください。
#if true // ここのtrue/falseを変更してください
.sheetPresentation(isPresented: $showSheet) {
DatePicker("Select date and time.", selection: $date)
.datePickerStyle(.graphical)
.environment(\.locale, Locale(identifier: Locale.preferredLanguages.first!))
}
#else
.sheetPresentationWithImagePicker(isPresented: $showSheet) { uiImage in
self.uiImage = uiImage
}
#endif
true
にした場合
シートに DatePicker
を表示するサンプルが実行されます。
false
にした場合
シートに PHPickerViewController
を表示するサンプルが実行されます。
※注意
PHPickerViewController
の問題(と推定されます)でシートを動かした際にクラッシュすることがあります。