0

@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")
}
}

同じ問題があります

スクリーンショット

4

0 に答える 0