在应用程序购买之前隐藏按钮

时间:2014-06-18 16:32:15

标签: ios uiviewcontroller in-app-purchase

我有两个视图控制器。 ViewController1是应用程序中的主屏幕。 ViewController2是一个编辑/购买屏幕。我需要隐藏ViewController1上的按钮,直到通过ViewController2上的In App Purchase购买。关于我将如何做的任何建议?

我无法弄清楚如何让ViewController1知道在ViewController2上购买的内容

如果需要,会发布代码。

1 个答案:

答案 0 :(得分:0)

一种方法是使用NSUserDefaults来保存按钮状态。

购买完成后,将NSUserDeafult设置为是

-(void)confirmPurchase
{
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"itemXPurchased"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

由于您使用的结构是VC1(root) - > VC2,并且您想要更新位于viewstacks底部的VC1,因此当您从堆栈弹出Viewcontroller2时,它不会自动更新。因此,您需要使用NSNotificationCenterdelegate模式。

在ViewController1中delegatensnotification功能,您可以添加类似

的内容
-(void)updateButton{
 if([[NSUserDefaults standardUserDefaults] boolForKey:@"itemXPurchased"])
{
  //itemXPurchased bool is set to YES you can update your button
}
}

编辑1:忘记提及用户可以访问NSUSERDEFAULTS,如果他们愿意花时间去应用程序的沙箱并使用名为iExplore的应用程序来查找应用程序NSUSERDEFAULTS plist并更改值。

因此,如果您希望自己的应用更加安全,请使用此功能 https://github.com/matthiasplappert/Secure-NSUserDefaults
或者这个 http://code.tutsplus.com/tutorials/securing-and-encrypting-data-on-ios--mobile-21263