0

我正在尝试找出一种方法来在选择该屏幕控制器时在我的一个视图控制器上显示一条消息(此视图不是应用程序上的第一个视图,因此我无法在启动时执行此操作)。我只希望它出现一次,并且在重新选择该视图时不再出现;但是,如果重新启动应用程序,我希望它再次出现。

到目前为止,我能够让它毫无问题地出现一次,并且在使用该应用程序时它不会再次弹出,这是我想要的,因为我经常回到其他视图并返回。我遇到的问题是,当我再次启动应用程序时,我希望在选择适当的视图时出现警报消息,但由于存储在 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"];
        }}
4

1 回答 1

0

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

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

此委托方法将让您知道您的应用程序何时进入后台。您在委托方法中编写的代码将是:

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

希望这会有所帮助。

于 2012-06-18T15:04:12.823 回答