ios – 在swift中关闭d出窗口后刷新视图

ios – 在swift中关闭d出窗口后刷新视图,第1张

概述我正在看这个教程 youtube,我在d出窗口中添加了按钮.按钮是添加硬币(IAP),但问题是当我解除d出时它不会刷新视图以查看更新硬币.如果我按回按钮然后再来它会更新. 所以问题是按下关闭按钮后如何刷新父视图. 这是popupVC import UIKitclass PopUpViewController: UIViewController {override func viewDidL 我正在看这个教程 youtube,我在d出窗口中添加了按钮.按钮是添加硬币(IAP),但问题是当我解除d出时它不会刷新视图以查看更新硬币.如果我按回按钮然后再来它会更新.

所以问题是按下关闭按钮后如何刷新父视图.

这是popupVC

import UIKitclass PopUpVIEwController: UIVIEwController {overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()    self.vIEw.backgroundcolor = UIcolor.blackcolor().colorWithAlphaComponent(0.8)    self.showAnimate()    // Do any additional setup after loading the vIEw.}overrIDe func dIDReceiveMemoryWarning() {    super.dIDReceiveMemoryWarning()    // dispose of any resources that can be recreated.}@IBAction func closePopUp(sender: AnyObject) {    self.removeAnimate()    //HERE SHOulD BE CODE TO RELOAD PARENT VIEWCONTRolER}func showAnimate(){    self.vIEw.transform = CGAffinetransformMakeScale(1.3,1.3)    self.vIEw.Alpha = 0.0;    UIVIEw.animateWithDuration(0.25,animations: {        self.vIEw.Alpha = 1.0        self.vIEw.transform = CGAffinetransformMakeScale(1.0,1.0)    });}func removeAnimate(){    UIVIEw.animateWithDuration(0.25,animations: {        self.vIEw.transform = CGAffinetransformMakeScale(1.3,1.3)        self.vIEw.Alpha = 0.0;        },completion:{(finished : Bool)  in            if (finished)            {                self.vIEw.removeFromSupervIEw()            }    });@IBAction func btnAddCoins(sender: UIbutton) {    for product in List {        let prodID = product.productIDentifIEr        if(prodID == "XXXX") {            p = product            buyProduct()            break;        }    }}}

我没有复制所有IAP代码.

解决方法 一个简单的方法是使用委托来处理这个问题.我们的想法是,当您创建PopUpVIEwController时,您将为其分配委托.这意味着父VC符合委托.

代表可能是什么的一个例子.请注意,建议支持处理成功,失败和取消的方法.

此代码均未经过编译测试,仅供参考.

protocol IAPDelegate {    func purchaseSuccessful()    func purchaseCancelled()    func purchaseFailed()}

你的班级会改成这样的东西.我省略了你的一堆代码.您还需要找出处理purchaseCancelled和purchaseFailed的位置.此外,您可能希望为呼叫提供更多信息(即参数),但我还是要由您决定.

class PopUpVIEwController: UIVIEwController {    weak var iapDelegate : IAPDelegate?    // Your other code here    @IBAction func closePopUp(sender: AnyObject) {        self.removeAnimate()        iapDelegate?.purchaseSuccessful()    }}

您的父VC,我在这里调用ParentVIEwController会是这样的

class ParentVIEwController: UIVIEwController,IAPDelegate

顺便说一下,你应该想到更好的课程命名.如果PopUpVIEwController确实是您的IAP购买VC,那么请将其命名为.如果你想要另一个d出视图控制器怎么办?你有什么名字呢?

总结

以上是内存溢出为你收集整理的ios – 在swift中关闭d出窗口后刷新视图全部内容,希望文章能够帮你解决ios – 在swift中关闭d出窗口后刷新视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存