我已经构建了一个包含IAP( In App Purchase) 的应用程序。该应用程序是使用UINavigationController. 当用户决定购买内容时,解锁功能解锁内容。然后用户点击后退按钮,他们将返回主菜单,然后他们可以访问应用程序的其余部分。所有这一切都很好。
我的问题是,当用户转到属于 的解锁viewController内容UINavigationController,然后返回到主菜单页面时,应用程序已经清除了用户购买解锁内容并且(我假设)使用在此初始主菜单property.enabled = no;的方法中设置的属性,用于在重新加载主页面时重新锁定内容。viewDidLoadviewController
所以,我的问题是如何让应用知道用户已经购买了应用内内容,并在用户偏离主菜单页面后保持内容解锁?
我在想也许我可以BOOL appPurchased;在mainMenuViewController. 然后从新解锁viewControllers的 中,包含一个prepareForSegueMethod将 设置为 的BOOL,YES然后在声明中启用购买的内容if。
像这样的东西:
之后声明
BOOL appPurchased;_mainMenuViewController.m@implementation在中实现以下方法
mainMenuViewController.m:
(void) viewWillAppear:(BOOL)animated { if (appPurchased) { [self enableLockedContent]; } else if (!appPurchased){ nil; } }
- 在
UnlockedContentViewController中,实现以下连接到 a 的方法UIButton:
(IBAction)toMainMenu:(id)sender { UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *mainMenu = [mainStoryboard instantiateViewControllerWithIdentifier:@"cover"]; [self.navigationController pushViewController:mainMenu animated:YES]; }
我无法弄清楚如何用MainMenuViewController.appPurchase =YES;上述(IBAction)toMainMenu:(id)sender方法编写。
这种配置是否将BOOL值发送回mainViewController接近工作的任何地方?有没有更好的办法?