2010-08-16 52 views
3

我有一個2 UIAlert顯示我按下一個按鈕。我希望第二個警報只有在第一個UIAlert被解除時(即我們按下第一個OK按鈕時)纔可見。2 UIAlertView一個接一個

我該如何繼續?以下是我的代碼:

- (IBAction)button:(id)sender { 
UIAlertView *view; 
view = [[UIAlertView alloc] 
    initWithTitle: @"Message" 
    message: @"Adding..." 
    delegate: self 
    cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
[view show]; 

MyAppAppDelegate *appDelegate = (MyAppAppDelegate *)[[UIApplication sharedApplication] delegate]; 

if (appDelegate.array_presets.count) { 
    view = [[UIAlertView alloc] 
    initWithTitle: @"Message" 
    message: @"limit already reached" 
    delegate: self 
    cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
    [view show]; 
} 

[view autorelease]; 
} 

回答

5

爲您的兩個警報視圖使用不同的標記。

alertView.tag = 1000; 

執行警報視圖委託方法並檢查標記值。使用第一個警報視圖創建並顯示第二個警報視圖時調用委託。

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 
{ 
    if(alertView.tag == 1000) 
    { 
     //first alert view's button clicked 
     UIAlertView *view = [[UIAlertView alloc] 
       initWithTitle: @"Message" 
       message: @"limit already reached" 
       delegate: self 
       cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
     view.tag = 2000; 
     [view show]; 
    } 
    if(alertView.tag == 2000) 
    { 
     //handle second alert view's button action 
    } 

} 
+0

你可能想用的是'如果(alertView.tag!= 1000)'在第二個「如果」或檢查像1001 另一個值,但不解決海報的問題,我想。 – DarkDust 2010-08-16 11:20:41

+0

感謝您的更正。在答案中編輯了代碼。我認爲這應該可以解決這個問題,因爲他希望在第一個警報視圖被解散後顯示第二個警報視圖。 – lukya 2010-08-16 11:38:34

相關問題