在Swift中进行应用内购买时,从其他视图控制器隐藏UIButton

时间:2019-07-07 15:44:48

标签: swift uibutton in-app-purchase viewcontroller

我有两个视图控制器,其中一个是ViewController,其中一个是主要的按钮,而另一个是ViewController,则是应用程序内购买。在ViewController 2上进行应用内购买后,我需要在ViewController One上隐藏一个按钮。

请提供Swift语言帮助

查看控制器一个按钮:

@IBOutlet weak var inAppBtn: UIButton!

视图控制器二:

我在这里解雇了View Controller Two,但是我需要使用inAppBtn并将其放在这里并隐藏。

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

2 个答案:

答案 0 :(得分:0)

您可以尝试在功能中添加此代码,然后在ViewControllerTwo中关闭它

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

答案 1 :(得分:0)

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

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

(如果您希望可见的界面在用户购买时立即更改,那么您也可以 使用NotificationCenter发布通知,其他视图控制器可以注册该通知以了解更改。)