仅显示警报消息,但在应用程序启动时再次出现

时间:2012-06-18 12:38:06

标签: uiviewcontroller nsuserdefaults uialertview

当我选择该屏幕控制器时,我正试图想办法让一条消息出现在我的一个视图控制器上(这个视图不是应用程序的第一个视图,所以我无法在启动)。我只希望它显示为ONCE,并且在重新选择该视图时不再显示;但是,如果应用程序重新启动,我希望它再次出现。

到目前为止,我能够让它出现一次没有任何问题并且它在使用应用程序时不会再次弹出,这是我想要的,因为我经常回到其他视图并返回。我遇到的问题是,当我再次启动应用程序时,我希望在选择适当的视图时显示警报消息,但由于存储在NSUserDefaults中的数据,它不会出现。

有什么想法吗?这出现在ViewWillAppear:

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *alertshown = [defaults stringForKey:@"alertshown"]; {
        if (alertshown == nil) {

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Press the Code button" message:@"Take a photo of this screen and show it to get your code" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

            [alertView show];
            [alertView release];

            [defaults setObject:@"alertwasdisplayed" forKey:@"alertshown"];
        }}

1 个答案:

答案 0 :(得分:0)

根据您的偏好,您需要使用app的APPDelegate:

- (void)applicationDidEnterBackground:(UIApplication *)application;

此代理方法会在您的应用进入后台时通知您。您在委托方法中编写的代码将是:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"alertshown"];

希望这会有所帮助。