サンプルプロジェクトで再現できないんだけど、DatePickerで日付を選択中にモーダールビューを表示しようとすると表示できなくなる現象があって、選択を一度解除してからモーダールビュー表示しないと上手くいかない。
(NavigationViewやSheetなど何重かにViewが重なってるからだと思うが上手く再現できない。)

このカレンダー選択が表示されているかどうかが知りたいのだが情報を得られず。
せめて閉じる方法がないかと検索したらこちらがヒット。
DatePickerのIDを変えると初期状態に戻してくれるらしく、結果として閉じることができる。
モーダルビューは次のRun-Loopで処理しないとうまく表示されないようで、DispatchQueue.main.asyncで遅延させている。
struct PresentedView: View {
@State var date = Date()
@State var isPresented = false
@State var calendarId: UUID = UUID()
var body: some View {
VStack {
Spacer()
DatePicker("Selecte a date", selection: $date)
.id(calendarId)
Spacer()
Button("Open") {
calendarId = UUID()
DispatchQueue.main.async {
isPresented.toggle()
}
}
}
.padding(20)
.sheet(isPresented: $isPresented, content: {
Color.green
})
}
}
しかしよくこういう所に辿り着くもんだと感心する。