@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
次のようないくつかのロジックに関連する公開された値に基づいて、カスタムの却下アクションのビューがあります。
.onAppear(perform: {
viewModel.cancellable = viewModel.$shouldPopBack.sink(receiveValue: { shouldPopBackToHome in
if shouldPopBackToHome {
presentationMode.wrappedValue.dismiss()
}
})
})
このビューには、シートを表示する別のオプションもあります
Button(action: {
shouldNavigateToQRCodeScanner = true
}, label: {
Text("Scan QR code")
.padding(.horizontal)
}).sheet(isPresented: $shouldNavigateToQRCodeScanner, content: {
QRCodeScannerView()
})
ここでの問題は、@Environment(\.presentationMode)
2QRCodeScannerView
回初期化されたときに、presentationMode を削除すると正常に動作することです。
更新 テストプロジェクトで同じ動作を試しましたが、同じです
struct ContentView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
@State var isPresentd: Bool = false
var body: some View {
NavigationView {
Button(action: {
isPresentd = true
}, label: {
Text("Navigate to Second View")
})
.sheet(isPresented: $isPresentd, content: {
SecondView()
})
}
}
}
struct SecondView: View {
init() {
print("Initialized")
}
var body: some View {
Text("Second View")
}
}
同じ問題があります