如何在我的应用程序中仅打印一次警报视图?

Posted

技术标签:

【中文标题】如何在我的应用程序中仅打印一次警报视图?【英文标题】:How to print an alert view only once in my app? 【发布时间】:2013-05-26 15:20:53 【问题描述】:

如果用户正在使用新版本的应用,我想向用户显示一条消息,并在应用启动时仅显示一次。

我已经设法获得了应用程序的最终版本和捆绑包的版本,并将它们进行比较以显示或不显示警报视图以提出新应用程序。现在我只想知道如何在完成一次后不再显示此警报。

感谢您的帮助。

【问题讨论】:

我认为您不需要我的代码,我只是有一个警报视图,我想显示或不显示,这取决于它是否已经显示过,所以我只是在等待一些建议怎么做。 ***.com/questions/308832/… 【参考方案1】:

要检查是否需要显示UIAlertView,请将变量存储在NSUserDefaults 中。例如,在 appDidFinishLaunching 你可以这样做:

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
if (! [defaults boolForKey:@"alertShown"]) 
  // display alert...
  [defaults setBool:YES forKey:@"alertShown"];

在显示警报中,只需要弹出警报的代码即可。

【讨论】:

在此之后发布新版本时将无法使用。【参考方案2】:

在用户默认值中保存版本号并检查版本与应用程序版本,如果两者相同,则继续,否则显示警报并将用户默认变量更新为最新版本。第一次留用户默认空字符串。

【讨论】:

【参考方案3】:

这里有一个如何做的想法。

-(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分支将永远不会再次执行(假设用户没有删除应用程序)。

【讨论】:

【参考方案4】:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![[defaults valueForKey:@"SHOW_ONLY_ONCE"] isEqualToString:@"1"])

    [defaults setValue:@"1" forKey:@"SHOW_ONLY_ONCE"];
    [defaults synchronize];

【讨论】:

以上是关于如何在我的应用程序中仅打印一次警报视图?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 在列表视图中仅选择单个项目

警报视图显示多次而不是一次

如何在 uwp 应用程序中仅使部分 gridview 项目可点击?

如何在Cloud Firestore中仅填充一次日期字段?

用于询问用户评论和费率的定制警报视图

如何在我的警报视图上添加笑脸? [复制]