在 Swift 中进行应用内购买时从不同的视图控制器隐藏 UIButton

Hide UIButton from different View Controller when In App Purchase is made in Swift

我有两个视图控制器,ViewController 一个是带有按钮的主视图控制器,而 ViewController 另一个是应用程序内购买。当在 ViewController 二上进行应用内购买时,我需要在 ViewController 一上隐藏一个按钮。

请使用Swift语言

提供帮助

查看控制器一键:

@IBOutlet weak var inAppBtn: UIButton!

视图控制器二:

我在这里关闭了 View Controller Two 但我需要接收 AppBtn 并将其放入此处并隐藏它。

  @IBAction func continueBtn(_ sender: Any) {
                if SKPaymentQueue.canMakePayments() {
                    let paymentRequest = SKMutablePayment()
                    paymentRequest.productIdentifier = productID
                    dismiss(animated: true, completion: nil)
                    SKPaymentQueue.default().add(paymentRequest)
                } else {
                    print("user unable to make payments")
        }
}

你可以尝试在你的函数中添加这个在 ViewController 中关闭之前继续 tn To

if let firstVc = self.presentingViewController as? ViewControllerOne{
    firstVc.yourButton.isHidden = true
}

当购买情况发生变化(即用户购买)时,您应该始终将已购买的事实存储在中央持久位置,例如用户默认值。

现在任何视图控制器都可以检查 viewWillAppear 或其他地方的 UserDefaults,并进行任何必要的更改,例如隐藏按钮(如果用户已经购买)。

(如果你希望可见界面在用户购买时立即改变,那么你可以使用NotificationCenter来post一个Notification,其他view controller可以注册以了解更改。)