Tenho uma visualização swiftUI que é apresentada usando um hostingController:
let hostingController = UIHostingController(rootView: FirstView)
someVC.present(hostingController, animated: true)
O FirstView, por sua vez, apresenta uma segunda visualização SwiftUI usando .sheet(IsPresented com um booleano para determinar se ela deve ser exibida da seguinte maneira:
struct FirstView: View {
@Environment(\.presentationMode) var presentationMode
@State var showSecondView = false
//change showSecondView to true so it displays as a sheet
.sheet(isPresented: $showSecondView) {
SecondView()
}
}
No SecondView, tenho um botão que gostaria de usar para descartar tanto o SecondView quanto o FirstView. Ele descarta o SecondView, mas não consigo descobrir como descartar o FirstView também, já que o FirstView foi apresentado em um controlador de hospedagem que não usava um booleano.
Se o SecondView fosse, digamos, um Alerta dentro do First View, então eu poderia usar a variável de ambiente presentationMode para descartar, entretanto, essa variável não parece ser acessível no SecondView.
struct SecondView: View {
@Environment(\.dismiss) var dismiss
Button("OK") {
//THIS DOES NOT WORK BECAUSE presentationMode is out of scope
presentationMode.wrappedValue.dismiss()
dismiss()//
}
}
Como posso descartar não apenas a planilha atual (ou Segunda), mas também a visualização de apresentação (ou Primeira visualização) que foi apresentada em um HostingController.
Agradecemos antecipadamente por quaisquer sugestões.