我有ViewController1
和ViewController2
。
如果您从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/