Я боролся с той же вещью, и я хотел бы думать, что это ошибка, которая будет устранена к сентябрю, я уже подал ее в Feedback Assistant, обязательно сделайте то же самое!
Пока что вы можете просто создать новый UIHostingController, который оборачивает представление SwiftUI, которое вы хотите показывать модально.Я знаю, что это выглядит очень странно, но, по крайней мере, это работает:
import SwiftUI
struct OtherView: View {
@State var otherViewState: String = ""
var body: some View {
TextField($otherViewState, placeholder: Text("Demo Text Input"))
}
}
struct Demo: View {
var body: some View {
Button("Toggle Modal") {
self.showModal()
}
}
func showModal() {
let window = UIApplication.shared.windows.first
window?.rootViewController?.present(UIHostingController(rootView: OtherView()), animated: true)
}
}
Возможно, вы захотите улучшить способ получения окна, особенно если вы поддерживаете несколько окон, но я думаю, что вы поняли идею.