1

さて、ユーザーが最初に私のアプリを起動したときに、2つの選択肢がポップアップ表示されるアラートビューが必要です。以下のこの方法を使用しています:

- (void) displayWelcomeScreen
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSString *alreadyRun = @"already-run";
    if ([prefs boolForKey:alreadyRun])
        return;
    [prefs setBool:YES forKey:alreadyRun];
    UIAlertView *alert = [[UIAlertView alloc]
        initWithTitle:@"…"
        message:@"…"
        delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [alert show];
    [alert release];
}

アプリを最初に起動したとき、アラートビューはポップアップしません。私は何か間違ったことをしていますか?ところで、アプリの最初の起動時にのみ表示したいのですが。それ以外の時間は表示しないでください。前もって感謝します。

4

3 に答える 3

1

これを試して:

(void)viewDidLoad{

NSLog(@"In viewDidLoad");
[self displayWelcomeScreen];

}

displayWelcomeScreenにコードを記述します:

- (void) displayWelcomeScreen
{
    NSLog(@"In displayWelcomeScreen");
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSString *alreadyRun = @"already-run";
    if ([prefs boolForKey:alreadyRun])
        return;
    [prefs setBool:YES forKey:alreadyRun];
    UIAlertView *alert = [[UIAlertView alloc]
        initWithTitle:@"…"
        message:@"…"
        delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [alert show];
    [alert release];
}

コンソールにdisplayWelcomeScreenに表示されているかどうかを確認します。

于 2012-07-04T10:03:09.240 に答える
0

これらを使用してみてください。コードにいくつか変更を加えました。

- (void) displayWelcomeScreen
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    if ([prefs objectForKey:@"alreadyRun"])
    {
        return;
    }
    else
    {
        [prefs setObject:@"YES" forKey:@"alreadyRun"];
        [prefs synchronize];
        UIAlertView *alert = [[UIAlertView alloc]
        initWithTitle:@"…"
        message:@"…"
        delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [alert show];
        [alert release];
    }
}
于 2012-07-04T09:20:05.723 に答える
0

appDelegate didFinishLaunchingWithOptionsに、次のようなものを追加します

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:@"everLaunched"]) {
    [defaults setBool:YES forKey:@"everLaunched"];
    [defaults setBool:YES forKey:@"firstLaunch"];
}
else{
    [defaults setBool:NO forKey:@"firstLaunch"];
}

ウェルカムメッセージを表示する必要があるかどうかを確認するには:

 - (void) displayWelcomeScreen
 {
  if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) 
         {
          NSLog(@"I should display alert view now with two selections");
          //what to you want to to here now? show alert view? with two choices?
          //you might want to remember the selected choice from user
         }
   else  {
         NSLog(@"the user already made his choice, this is not a first launch");
         //what do you want to do here now? show home screen? let the user use the app? 
         //the user has already made his choice
         }
}
于 2012-07-04T09:24:27.190 に答える