成功时应用内购买通话功能

时间:2017-11-12 10:47:58

标签: ios swift in-app-purchase

我有一个购买产品的按钮,该产品应隐藏背景视图,以防止用户使用应用程序的扩展程序。按下按钮时,购买产品的代码来自外部文件。因此,我知道在购买成功时隐藏视图的方法。

来自其他档案的代码

for transaction: AnyObject in transactions {
        if let trans: SKPaymentTransaction = transaction as? SKPaymentTransaction {
            switch trans.transactionState {
            case .purchased:
                print("Product Purchased")
                let purchased = UserDefaults.standard.bool(forKey: 
 "Analytics")
                UserDefaults.standard.set(true, forKey: "Analytics")

是否可以从外部swift文件向视图控制器类调用函数?还有什么方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用块或代理来传回信息。

PaymentClass子类内部声明一个委托

protocol PaymentDelegate {
  func payment(completed: Bool)
}

class YourExternalPaymentClass {
  weak var delegate: PaymentDelegate?
}

现在在显示叠加层的ViewController中配置此委托

在事件完成的付款类中,调用您的方法

   self.delegate?.payment(completed: true)

这样可以将数据传递回ViewController,您可以隐藏或显示您想要的任何内容。