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
に接続されている次のメソッドを実装します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
どこにでも送り返すというこの構成は機能していますか? より良い方法はありますか?