Я создал приложение, которое содержит IAP
(In App Purchase
). Приложение построено с использованием UINavigationController
. Когда пользователь решает приобрести контент, функция разблокировки разблокирует контент. Затем пользователь нажимает кнопку «Назад», и они возвращаются в главное меню, где они могут получить доступ к остальной части приложения. Все это прекрасно.разблокировать содержимое в 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
где-нибудь рядом с работой? Есть ли способ лучше?
Как насчет использования функции покупки восстановления для непотребимого товара? http://stackoverflow.com/questions/7761556/restore-already-bought-in-app-purchases-on-iphone –
Я не хочу, чтобы пользователю приходилось восстанавливать содержимое каждый раз, когда они вернутся в главное меню.Мне нужно найти способ, чтобы контент оставался разблокированным все время, если устройство не выключено или что-то в этом роде. – RunnerGirl