【问题标题】:Hide Button until In App Purchase隐藏按钮直到应用内购买
【发布时间】:2014-06-18 16:32:15
【问题描述】:

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

我不知道如何让 ViewController1 知道在 ViewController2 上购买了什么

如果需要,将发布代码。

【问题讨论】:

  • 问题是什么?如何隐藏按钮或如何将信息传递给其他 viewController?你在使用故事板吗?
  • 这可能有很多方法,首先你是使用导航控制器还是执行presentmodalviewcontroller来显示viewcontroller2?您是只显示/隐藏按钮一次,还是希望在用户购买后一直显示按钮?
  • 使用导航控制器,一旦购买,按钮将始终显示。谢谢@spacedust

标签: ios uiviewcontroller in-app-purchase


【解决方案1】:

一种方法是使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多