SwiftUI UI Sheet Presentation Controller

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 の問題(と推定されます)でシートを動かした際にクラッシュすることがあります。

GitHub

View Github