我已经构建了一个包含IAP
( In App Purchase
) 的应用程序。该应用程序是使用UINavigationController
. 当用户决定购买内容时,解锁功能解锁内容。然后用户点击后退按钮,他们将返回主菜单,然后他们可以访问应用程序的其余部分。所有这一切都很好。
我的问题是,当用户转到属于 的解锁viewController
内容UINavigationController
,然后返回到主菜单页面时,应用程序已经清除了用户购买解锁内容并且(我假设)使用在此初始主菜单property.enabled = no;
的方法中设置的属性,用于在重新加载主页面时重新锁定内容。viewDidLoad
viewController
所以,我的问题是如何让应用知道用户已经购买了应用内内容,并在用户偏离主菜单页面后保持内容解锁?
我在想也许我可以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
接近工作的任何地方?有没有更好的办法?