应用程序内购买电话function成功时

我有一个button,它应该隐藏屏蔽用户从使用扩展到应用程序的背景视图的产品。 当按下button时,购买产品的代码来自外部文件。 正因为如此,购买成功后,我才知道隐藏视图的方法。

来自其他文件的代码

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文件调用一个视图控制器类的function? 你还有什么办法可以解决这个问题?

您可以使用块或委托来传回信息。

PaymentClass子类里面声明一个委托

 protocol PaymentDelegate { func payment(completed: Bool) } class YourExternalPaymentClass { weak var delegate: PaymentDelegate? } 

现在在显示覆盖的ViewController中configuration这个委托

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

  self.delegate?.payment(completed: true) 

这样数据可以传回到ViewController,你可以隐藏或显示任何你想要的。