gpt4 book ai didi

ios - 解锁 UINavigationController 中的内容

转载 作者:行者123 更新时间:2023-11-29 03:53:43 25 4
gpt4 key购买 nike

我构建了一个包含 IAP(应用内购买)的应用。该应用程序是使用 UINavigationController 构建的。当用户决定购买内容时,解锁功能会解锁该内容。然后,用户点击后退按钮,他们将返回主菜单,然后可以访问应用程序的其余部分。所有这些都运行良好。

我的问题是,当用户转到属于 UINavigationController 一部分的未锁定的 viewController,然后返回主菜单页面时,应用程序已清除其内存用户已购买解锁内容并且(我假设)使用在此初始的 viewDidLoad 方法中设置的 property.enabled = no; 属性主菜单viewController用于在重新加载主页时重新锁定内容。

所以,我的问题是如何让应用知道用户已经购买了应用内内容,并在用户偏离主菜单页面后保持内容解锁?

我想也许我可以在 mainMenuViewController 中声明 BOOL appPurchased;。然后,从新解锁的 viewControllers 中,包含一个将 BOOL 设置为 YESprepareForSegueMethod,这将依次启用if 语句中购买的内容。

像这样:

  1. @implementation之后的mainMenuViewController.m中声明BOOL appPurchased;

  2. mainMenuViewController.m中实现以下方法:

(void) viewWillAppear:(BOOL)animated {
if (appPurchased) {
[self enableLockedContent];
} else if (!appPurchased){
nil;
}
}
  1. UnlockedContentViewController中,实现以下连接到UIButton的方法:
(IBAction)toMainMenu:(id)sender {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *mainMenu = [mainStoryboard instantiateViewControllerWithIdentifier:@"cover"];
[self.navigationController pushViewController:mainMenu animated:YES];
}

我不知道如何在上面的 (IBAction)toMainMenu:(id)sender 方法中编写 MainMenuViewController.appPurchase =YES;

这种将 BOOL 值发送回 mainViewController 的配置是否接近工作?有没有更好的办法?

最佳答案

您可以将 UIViewController 转换为 MainMenuViewController(然后您将能够设置 appPurchase 属性):

- (IBAction)toMainMenu:(id)sender {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:nil];
MainMenuViewController *mainMenu = (MainMenuViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"cover"];
mainMenu.appPurchase = YES;
[self.navigationController pushViewController:mainMenu animated:YES];
}

您还可以将购买信息保存在某处(也许是 NSUserDefaults?),并让 MainMenuViewController 自行检索此信息(在 init 甚至 viewDidLoad 方法上)。

关于ios - 解锁 UINavigationController 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com