2012-04-02 9 views
6

Jungs:UIAlertViewDelegate: clickedButtonAtIndex und zwei Tasten

Es gibt zwei Schaltflächen in meinem Viewcontroller von Test-App, die richtig Ich nenne es „NEIN“,

und die anderes ist „JA“. Die beiden Tasten rufen zwei verschiedene Funktionen auf, und wenn der Benutzer eine der Tasten drückt, möchte ich dem Benutzer einen Alarm anzeigen, um dies zu bestätigen.

weiß, dass ich die UIAlertViewDelegate verwenden

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 

aber es gibt zwei Tasten, ich bin verwirrt. Woher weiß ich, welche Taste gedrückt wurde?

Also, bitte helfen Sie mir damit, danke im Voraus!

Antwort

17

zu machen, wenn Sie ein UIAlertView Sie erstellen kann eine tag dafür einrichten

-(IBAction)yesButtonClick:(id)sender{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle: @"Cancel" otherButtonTitles:@"OK", nil]; 
    alert.tag = 101; 
    [alert show]; 
} 

-(IBAction)noButtonClick:(id)sender{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle: @"Cancel" otherButtonTitles:@"OK", nil]; 
    alert.tag = 102; 
    [alert show]; 
} 

Im Delegatmethode Prüfung, den Alarm

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (alertView.tag == 101) { 
     // from YES button 
    } 
    else if (alertView.tag == 102) { 
     // from NO button 
    } 
} 
+0

Danke! Das funktioniert ! Haben Sie einen guten Tag ! – jxdwinter

0
- (void)alertView:(UIAlertView *)actionSheet 
    clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    switch(buttonIndex){ 
    case 0: 
     //YES button handler 
     break; 
    case 1: 
     //NO button handler 
     break; 
    default: 
     break; 
    } 
} 
+0

gezeigt wird, ich denke, er will diese Warnung erkennen, welche Taste zeigt .. – beryllium

+0

@beryllium: ja sogar glaube ich die gleichen –

+0

Ja, ich will nur wissen, Drücken Sie die Taste "YES" oder "NO", und stellen Sie sicher, dass der Benutzer weitermachen möchte, danke für Ihre Antworten! – jxdwinter

0

können Sie das Tag-Attribut verwenden, um die Differenz zwischen Ihrem Schlepptau UIAlertView
in der Funktion der Taste 1
alertView1.tag=1;
und in

-(void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
if(actionSheet.tag==1){ 
//first button was clicked 
} 

} 
Verwandte Themen