如果用户正在使用新版本的应用程序,我想向用户显示一条消息,并在应用程序启动时仅显示一次此消息。
我已经设法获得了应用程序的最终版本和捆绑包的版本,并将它们进行比较以显示或不显示警报视图以提出新的应用程序。现在我只想知道如何在完成一次后不再显示此警报。
谢谢你的帮助。
如果用户正在使用新版本的应用程序,我想向用户显示一条消息,并在应用程序启动时仅显示一次此消息。
我已经设法获得了应用程序的最终版本和捆绑包的版本,并将它们进行比较以显示或不显示警报视图以提出新的应用程序。现在我只想知道如何在完成一次后不再显示此警报。
谢谢你的帮助。
要检查是否需要显示UIAlertView
,请将变量存储在NSUserDefaults
. 例如,在 appDidFinishLaunching 你可以这样做:
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (! [defaults boolForKey:@"alertShown"]) {
// display alert...
[defaults setBool:YES forKey:@"alertShown"];
}
在显示警报中,只需弹出警报的代码即可。
这是一个关于如何做到这一点的想法。
-(BOOL)application:(UIApplication *)application … {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (! [defaults boolForKey:@"notFirstRun"]) {
// display alert...
[defaults setBool:YES forKey:@"notFirstRun"];
}
// rest of initialization ...
}
这里,[defaults boolForKey:@"notFirstRun"]
读取一个名为 notFirstRun 的布尔值
从配置。这些值被初始化为 NO。所以如果这个值为 NO,我们执行 if 分支并显示警报。
完成后,我们[defaults setBool:YES forKey:@"notFirstRun"]
将这个布尔值更改为 YES,这样 if 分支将永远不会再次执行(假设用户没有删除应用程序)。
将版本号保存在用户默认值中并使用应用程序版本检查版本,如果两者相同,则继续,否则显示警报并将用户默认变量更新为最新版本。第一次保留用户默认的空白字符串。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![[defaults valueForKey:@"SHOW_ONLY_ONCE"] isEqualToString:@"1"])
{
[defaults setValue:@"1" forKey:@"SHOW_ONLY_ONCE"];
[defaults synchronize];
}