SwiftUI
は新しいフレームワークであるので、フィーチャー UIKit
の幾らかを欠いています。そららフィーチャー UIKit
を活用する為には、UIViewControllerRepresentable
を使用しなければなりません。
頻出する UIViewControllerRepresentable
のコードを蓄積するレポジトリを作成したので、SwiftUI
プロジェクトに活用してください。
ぜひお気軽に、作成されたコードをこのレポジトリに追加してください。
- ファイル内容をプレビュー (
QLPreviewController
) - iOS 14 フォトピッカー (
PHPickerViewController
) - フォトピッカー (
UIImagePickerController
) - メールコンポーザー (
MFMailComposeViewController
) - テキストメッセージコンポーザー (
MFMessageComposeViewController
) - ウェブ表示 (
SFSafariViewController
) - ドキュメントピッカー (
UIDocumentPickerViewController
) - ビデオプレイヤー (
AVPlayerViewController
) - UICloudSharingController (This only works on iPhone; As you need to set a
popoverController.sourceView
for theUICloudSharingController
. Consider creating a storyboard with a single button (that shows theUICloudSharingController
) and present the storyboard view from SwiftUI).
または、Swift Package Manager
を使用して自身のプロジェクトにコードを挿入することができます。iOS 14のみに対応しているため、Swift Package Manager
には PhotoPicker
が含まれないことにご注意ください。
- Xcode内からプロジェクトを開く
- 上部のシステムバーの"File"をクリック
- "Swift Packages"をクリック、次いで"Add package dependency…"をクリック
- 以下のURLをペースト:
https://github.com/mszmagic/SwiftUICompatible.git
- Version: Up to Next Major
1.0.1 <
- "Next"をクリック
- "Done"をクリック。
import SwiftUICompatible
struct ContentView: View {
@State private var showPreview = false
var body: some View {
Button(action: {
self.showPreview = true
}){
Text("表示")
}
.sheet(isPresented: $showPreview, content: {
SafariView(url: URL(string: "https://github.com/mszmagic/SwiftUICompatible")!)
})
}
}