• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

UIAlertView

jonnonnes

Gala
Registriert
17.04.11
Beiträge
52
Hi Leute,
was mache ich falsch
Code:
-(IBAction)abbrechen:(id)sender {
    if (sender == fertig) {
        // TODO: Einlesen von Text
    }
    else{
        UIAlertView *sicher =[UIAlertView alloc];
        [initWithTitle:@"Bist du dir sicher ?" message:@"Wirklich ?" delegate:self cancelButtonTitle:@"Nein" otherButtonTitles:@"Ja", nil];
        [sicher show];
        [sicher release];
        
               }    
        }
-(void)sicher:(UIAlertView *)actionPerformed clickedButtonAtIndex:(NSInteger)buttonIndex{
     if (buttonIndex == 0) {
     [window bringSubviewToFront:window];
} 
}

Window ist ein View und wenn ich NSLog versuche wird dieses auch nicht ausgegeben. Das heist das der Alert garnicht erst in die Methode sicher reingeht.

Danke im Vorraus
Jonnonnes
 
Du solltest die Fehlermeldungen des Compilers beachten.

Code:
UIAlertView *sicher =[UIAlertView alloc];[
        [initWithTitle:@"Bist du dir sicher ?" message:@"Wirklich ?" delegate:self cancelButtonTitle:@"Nein" otherButtonTitles:@"Ja", nil];

Das geht so zu 100% nicht ohne Fehler durch.
Was du willst dürfte das sein:

Code:
UIAlertView *sicher =[[UIAlertView alloc]initWithTitle:@"Bist du dir sicher ?" message:@"Wirklich ?" delegate:self cancelButtonTitle:@"Nein" otherButtonTitles:@"Ja", nil];
 
Also erstmal Danke aber ihr habt glaube ich das ganze nicht richtig verstanden es geht nicht darum das UIAlertView zu implementieren sondern wie ich die verschiedenen ereignisse programmieren kann es geht um den Teil
Code:
-(void)sicher:(UIAlertView *)actionPerformed clickedButtonAtIndex:(NSInteger)buttonIndex{      if (buttonIndex == 0) {      [window bringSubviewToFront:window]; }
 
Oh jo Sorry ich hab das Ganze nicht gleich aus Xcode rauskopiert sondern dannach noch verändert und mich dann vertan eigentlich sieht das ganze so aus
Code:
-(IBAction)abbrechen:(id)sender { 
          if (sender == fertig) {         
          // TODO: Einlesen von Text  
          }    
          else{      
          UIAlertView *sicher =[UIAlertView alloc];        
          [[B][I]sicher[/I][/B] initWithTitle:@"Bist du dir sicher ?" message:@"Wirklich ?" delegate:self cancelButtonTitle:@"Nein" otherButtonTitles:@"Ja", nil];       
        [sicher show];         
        [sicher release];                        
        }
}
 -(void)sicher:(UIAlertView *)actionPerformed clickedButtonAtIndex:(NSInteger)buttonIndex{   
         if (buttonIndex == 0) {     
         [window bringSubviewToFront:window];
          }
 }
 
Ok, hab nach dem "Fehler" gar nicht mehr weitergelesen gehabt.

Die Methode die das die UIAlertview in ihrem Delegate aufruft heißt
Code:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
Wenn du die Methode anders nennst, wird sie logischerweise auch nicht aufgerufen. ;)

Die Methode heißt an sich alertView:clickedButtonAtIndex
bei dir sicher:clickedButtonAtIndex

Der erste Parameter nennt sich im Original alterView,
bei dir jedoch actionPerformed (was als Namen für eine Alertview wenig Sinn macht).
 
Leuchtet mir ein aber muss ich sonst noch irgendwas beachten irgendwelche outlets oder so denn
Code:
-(IBAction)abbrechen:(id)sender {
    if (sender == fertig) {
        // TODO: Einlesen von Text
    }
    else{
        UIAlertView *sicher = [[UIAlertView alloc]initWithTitle:@"Bist du dir sicher ?" message:@"Wirklich ?" delegate:self cancelButtonTitle:@"Nein" otherButtonTitles:@"Ja", nil];
        [sicher show];
        [sicher release];
        
               }    
        }
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if (buttonIndex == 0){
    [window bringSubviewToFront:window];
} 
}
funktioniert einfach nicht.
 
Wird die Methode sicher nicht aufgerufen, oder ist der buttonIndex evtl. einfach nicht Null?
Die Alertview wird auch angezeigt?
 
Oh jo da war der Fehler falscher Index der war nämlich 1
Danke Jonnonnes