Frage

Ich habe einige destruktive Operationen, die Bestätigung brauchen, und ich bin mit dem UIActionSheet.

Im Inneren des clickedButtonAtIndex ich einige lenghtly Operationen ausgelöst, die eine UIActivityIndicatorView benötigen.

Das Problem ist, dass ich nicht die UIActivityIndicatorView sehen kann, bis der UIActionSheet geschlossen hat, und dies geschieht, wenn der Vorgang abgeschlossen ist.

Kann ich zwingen, die UIActionSheet selbst zu schließen, wenn der Benutzer einige Tasten und ihre clickedButtonAtIndex Delegierten gefeuert wurde gedrückt hat?

In Pseudo-Code:

  • Benutzer will einige destruktive Operation tun
  • Anfrage Bestätigung mit einer UIActionSheet
  • Der Benutzer sagt YES
  • Delegierter clickedButtonAtIndex Feuer und ruft einen lenghtly Betrieb
  • Diese Operation, die erste Sache, die ein UIActivityIndicatorView tut öffnet, sondern weil die UIActionSheet aktiv ist, kann ich nicht bis zum Ende sehen ...

Danke,

r.

War es hilfreich?

Lösung

Sie können anrufen

CFRunLoopRunInMode(UITrackingRunLoopMode, 0.1, true);

die UI-Elemente lassen aktualisieren, bevor Sie Ihre langwierige Berechnung beginnt. Alternativ können Sie

-(void)doLengthyOperation {
   show_activity_indicator_view();
   [self performSelector:@selector(doRealLengthyOperation) withObject:nil afterDelay:0.1];
}
-(void)doRealLengthyOperation {
   // do the real lengthy operations.
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top