我有两个视图控制器。 ViewController1是应用程序中的主屏幕。 ViewController2是一个编辑/购买屏幕。我需要隐藏ViewController1上的按钮,直到通过ViewController2上的In App Purchase购买。关于我将如何做的任何建议?
我无法弄清楚如何让ViewController1知道在ViewController2上购买的内容
如果需要,会发布代码。
答案 0 :(得分:0)
一种方法是使用NSUserDefaults来保存按钮状态。
购买完成后,将NSUserDeafult设置为是
-(void)confirmPurchase
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"itemXPurchased"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
由于您使用的结构是VC1(root) - > VC2,并且您想要更新位于viewstacks
底部的VC1,因此当您从堆栈弹出Viewcontroller2时,它不会自动更新。因此,您需要使用NSNotificationCenter或delegate模式。
在ViewController1中delegate
或nsnotification
功能,您可以添加类似
-(void)updateButton{
if([[NSUserDefaults standardUserDefaults] boolForKey:@"itemXPurchased"])
{
//itemXPurchased bool is set to YES you can update your button
}
}
编辑1:忘记提及用户可以访问NSUSERDEFAULTS,如果他们愿意花时间去应用程序的沙箱并使用名为iExplore的应用程序来查找应用程序NSUSERDEFAULTS plist并更改值。
因此,如果您希望自己的应用更加安全,请使用此功能
https://github.com/matthiasplappert/Secure-NSUserDefaults
或者这个
http://code.tutsplus.com/tutorials/securing-and-encrypting-data-on-ios--mobile-21263