这是我第一次在一个大项目中使用 PassKit 和 SwiftUI。我正在尝试实现 Apple Pay SwiftUI,并且由于还没有本地方式来实现,因此我尝试将 PKPaymentAuthorizationViewController 包装在 UIViewControllerRepresentable 中,但我不确定我是否正确执行此操作。
该视图显示正确,并且在单击它付款时似乎可以正常工作。我通过将视图绑定到 isPresentingApplePay bool 来控制显示窗口(见下文)。应该关闭窗口时会发生问题。点击cancel
按钮不会关闭视图;有时它甚至不调用 paymentAuthorizationViewControllerDidFinish 委托函数。提交付款后也会发生同样的事情。有时会调用 didFinish 委托,但不会取消视图。我尝试传递绑定变量 isPresentingApplePay 并将其从 didFinish设置为false但它没有做任何事情。让视图消失的唯一方法是点击苹果支付窗口外的任何部分。
有谁知道我做错了什么?有什么我完全想念的吗?
通过将视图绑定到 if statement
这是我的 PKPaymentAuthorizationViewController 包装器:
import Foundation
import PassKit
import SwiftUI
struct ApplePayController: UIViewControllerRepresentable {
@Environment(\.presentationMode) var presentationMode
@EnvironmentObject var userData: UserData
@Binding var purchase: Purchase
@Binding var isPresenting: Bool
let items: [PKPaymentSummaryItem]
func updateUIViewController(_ uiViewController: PKPaymentAuthorizationViewController, context: Context) {
}
typealias UIViewControllerType = PKPaymentAuthorizationViewController
func makeUIViewController(context: Context) …
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助我在Ubuntu中用C++实现一个简单的文件打开对话框.我正在使用OpenGL作为我的GUI,但我希望用户能够在程序加载时选择一个文件.我试过gtkmm和wxWidgets,但它们似乎太复杂了我想做的事情.