0

スクリーンコントローラーが選択されているときに、ビューコントローラーの1つにメッセージを表示する方法を見つけようとしています(このビューはアプリの最初のビューではないため、起動時に実行できません)。1回だけ表示し、そのビューが再度選択されたときに再度表示されないようにします。ただし、アプリを再起動した場合に再度表示したいのですが。

これまでのところ、問題なく一度表示することができ、アプリの使用中に再びポップアップすることはありません。これは、他のビューに戻って戻ることが多いため、私が望んでいることです。私が抱えている問題は、アプリを再起動したときに、適切なビューを選択したときにアラートメッセージを表示したいのですが、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 に答える