UIAlertView mit UIActivityIndicatorView

  • UIAlertView mit UIActivityIndicatorView

    Hallo,

    hier mein UIAlertView mit UIActivityIndicatorView:

    Quellcode

    1. saving = [[[UIAlertView alloc] initWithTitle:@"Bitte warten"
    2. message:nil
    3. delegate:self
    4. cancelButtonTitle:nil
    5. otherButtonTitles:nil] autorelease];
    6. [saving show];
    7. UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    8. activityIndicator.center = CGPointMake(saving.bounds.size.width / 2.0f, saving.bounds.size.height - 40.0f);
    9. [activityIndicator startAnimating];
    10. [saving addSubview:activityIndicator];
    11. [activityIndicator release];
    Alles anzeigen

    Beim Kompilieren erhalte ich den Fehler 'saving' undeclared. Wie kann das sein?
  • AR.DDev schrieb:


    Beim Kompilieren erhalte ich den Fehler 'saving' undeclared. Wie kann das sein?

    Du hast die Variable 'saving' nicht deklariert. Steht doch da. :rolleyes:
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • fwtag schrieb:

    Hast Du auch irgendwo so etwas stehen:

    Quellcode

    1. UIAlertView *saving;

    oder:

    Quellcode

    1. UIAlertView *saving = nil;

    Vermutlich nicht, sonst käme ja der Fehler nicht. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • AR.DDev schrieb:

    Sowas simples, dass mir das nicht aufgefallen ist...
    Noch eine Frage...
    Kann ich bei

    Quellcode

    1. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    feststellen, von welchem AlertView aus der Button geklickt wurde, also wer der sender ist?

    Nein. Es ist nahezu vollkommen ausgeschlossen, dass man über den Parameter alertView in seiner Delegate-Methode auch nur den Hauch eines Hinweises auf das aufrufende AlertView bekommt.

    Keine Doku und einführende Literatur lesen ist eine Sache, aber logisch denken und probieren wäre doch mal ne Option. :whistling:
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • AR.DDev schrieb:

    feststellen, von welchem AlertView aus der Button geklickt wurde, also wer der sender ist?

    Wie Lucas schon sagte: Der erste Parameter deutet jedenfalls sehr darauf hin, dass es sich um Deinen Alertview handelt. Und wie bei allen von UIView abgeleiteten Klassen kannst Du ihm auch einen Tag mitgeben ([... setTag:...], damit Du dann in der Methode über [alertview tag] == ... mit einer simplen If-Konstruktion ermitteln kannst, welcher Alertview es ist. Man sollte UIAlertViews nämlich tunlichst mit autorelease versehen (was Du auch getan hast) - oder wann möchtest Du sie releasen? Dann jedoch sollte man es tunlichst unterlassen, sich den AlertView an sich für einen späteren Vergleich zu merken ...
  • Leider klappt es nicht.
    In meiner *.h habe ich

    Quellcode

    1. @interface ViewController : UIViewController <UIAlertViewDelegate> {
    2. //...
    3. }
    und in meiner *.m

    Quellcode

    1. - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    2. {
    3. if ([alertView tag] == 0) {
    4. //...
    5. }
    6. else {
    7. //...
    8. }
    9. }
    10. UIAlertView *a = [[UIAlertView alloc] initWithTitle:@"Lizenzbestimmungen"
    11. message:@"blablabla"
    12. delegate:@"self"
    13. cancelButtonTitle:@"Abbrechen"
    14. otherButtonTitles:@"Akzeptieren", nil];
    15. [a setTag:0];
    16. [a show];
    Alles anzeigen
    Aber anscheinend wird der - (void)alertView gar nicht aufgerufen.