swiftUI ios16 .sheet(モーダルビュー)に遅延させてViewを渡す方法
swiftUI .sheet(モーダルビュー)に遅延させてViewを渡す方法
現在swiftの勉強で辞書アプリを作っています。メインはSwiftUIで、内蔵辞書(UIReferenceLibraryViewController)はUIKitなので
UIViewControllerRepresentableを通して描写しています。
現在私が実装したい機能は内蔵辞書をSwiftUIの.sheetで表示することで、ほぼほぼできているのですが、ios16から使えるセミモーダルのモディファイアである
.presentationDetents([.medium])を与えると、動画のように一旦全画面に広がってからmediumサイズに戻ります。
一度.sheetになんのviewも渡さないで実行すると最初からmediumサイズで止まったので、おそらくUIReferenceLibraryViewControllerが渡してくるViewが影響していると考えました。
そこで以下のようにDispachQueueを使ってみたのですが、エラーが出ました。
(Type '()' cannot conform to 'View')
Viewを一定時間後に渡す方法はありますでしょうか?
この問題で丸一日は使っているので、アドバイスをいただけると大変ありがたいです。
.sheet(isPresented: $showDict){
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
if #available(iOS 16.0, *) {
DictView(text: char)
.presentationDetents([.medium, .large])
} else {
// Fallback on earlier versions
DictView(text: char)
}
}
}
0