我有ViewController1ViewController2

如果您从ViewController1转到ViewController2,则可以在ViewController2上购买将在ViewController1上显示按钮的IAP。

VC1-> VC2,购买-> VC1(应显示购买按钮解锁)

我遇到的问题是,当我从ViewController1返回时,按钮没有立即显示在ViewController2上。

仅当我回到ViewController1然后再次进入ViewController2然后回到ViewController1时,该方法才有效。

VC1-> VC2,购买-> VC1(按钮3仍然隐藏)-> VC2-> VC1(显示按钮3)

我假设这会以某种方式刷新视图,所以我想弄清楚什么可以在我回到ViewController1时立即刷新它,而不必反复来回刷新它。

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"Purchased3"]) {
        buttonThree.hidden = TRUE;
        labelThree.hidden = TRUE;
        NSLog(@"Trying to talk to VC2, hides button/label 3 because there's not purchases");

    } else {
        //buttonThree.hidden = TRUE;
        buttonThree.hidden = FALSE;
        labelThree.hidden = FALSE;
        NSLog(@"Trying to talk to VC2, doesn't hide button/label 3 because there has been a purchase");
    }


感谢您的帮助,如果需要,将发布更多代码,或者根据需要进行澄清!

VC1-> VC2,购买-> VC1(按钮3仍然隐藏)-> VC2-> VC1(显示按钮3)

最佳答案

问题可能是将值存储在NSUserDefaults中需要花费一些时间,并且当您返回ViewController1时可能未设置该值。

您可以通过3种方式解决问题:

1)成功购买IAP产品后,请使用[NSNotificationCenter defaultCenter] API通知ViewController1它应该进行自我更新。

2)您可以在AppDelegate.h中设置一个全局int属性,因此您可以轻松地立即看到最新值(即使尚未在NSUserDefaults中设置)。

3)使用委派模式。

关于ios - IAP需要刷新 View Controller View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25342744/

10-10 12:31