2012-07-04 44 views
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]; 
} 

當我第一次啓動應用程序時,沒有警報視圖彈出。難道我做錯了什麼?順便說一句,我希望它只顯示在應用程序的第一次啓動。它不能顯示任何其他時間。提前致謝。

+0

設置alertview的委託。 – Bazinga

+0

我現在嘗試過,但沒有運氣,它仍然沒有顯示。 – James

+0

只是爲了闡明你必須在.h文件中設置代理寫入? – James

回答

1

試試這個:

(void)viewDidLoad{ 

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

} 

在displayWelcom中eScreen編寫代碼:

- (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中。

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]; 
    } 
} 
+0

我試過但仍然沒有運氣 – James

+0

嘗試在函數啓動時加入一些斷點並檢查控制流。然後我們可以找出控制偏離的位置。 –

+0

即時通訊新的xcode,所以我不太有自信的斷點。我一直想用它們。 – James

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 
     } 
} 
+0

你介意發佈displayWelcomeScreen的完整代碼嗎?我有點困惑。 – James

+0

@James我編輯了代碼。當你遇到問題時添加評論 – janusbalatbat

+0

謝謝你正是我所做的。它仍然不會顯示。我一定在某處犯了一個錯誤 – James