Frage

Ich bin eine Reihe von Dateien aus dem iPhone zu einem Web-Service hochladen. Ich möchte mit einem UIActivityIndicatorView innerhalb eines UIAlertView auf dem Bildschirm haben. Ich habe das gut zu funktionieren. Allerdings möchte ich den Titel des UIAlertView aktualisieren, da jede Datei hochgeladen wird. ( "Upload-Datei 1 ...", "Hochladen von Datei 2 ...", etc.)

Ich weiß, dass Sie nicht nur den Titel in einer Schleife mit synchronen Web-Anfragen als UI Laufschleife einstellen wird nie aufgerufen. Ich habe versucht, NSTimer unter Verwendung der Web-Anfragen zu feuern, aber da jede Anfrage Dauer nicht vorhersehbar ist, das nicht funktioniert. (Die Meldung könnte aktualisieren, bevor der Antrag tatsächlich beendet ist.)

Ich mag wirklich jede Datei synchron einen nach dem anderen, laden, da die iPhone Bandbreite ziemlich begrenzt ist. Ich kann einfach nicht einen Mechanismus herauszufinden, zu sagen, ‚wenn dieser Gleichlauf beendet ist, das UI-Update für eine Zecke lassen, dann eine anderen Synchronlauf tun.‘

War es hilfreich?

Lösung

OK hier ist der Ansatz, den ich dies geschah zu lösen:

  1. Erstellen Sie die UIAlertView
  2. Starten Sie eine asynchrone Web-Anfrage die Artikel zu schreiben, stellen Sie die Delegierten selbst
  3. Im connectionDidFinishLoading: Methode überprüfen, um zu sehen, ob es weitere Objekte zu schreiben ist. Wenn es, den Titel aktualisieren und eine andere Asynchron Anfrage pfiffen. Wenn nicht, entlassen die Warnung.

Es bedeutet, dass Sie ein paar Klassenvariablen zu halten haben zu verfolgen, welche Anforderung lädt aber es funktioniert perfekt und beinhaltet keine komplizierte Einfädeln oder irgendetwas anderes.

Andere Tipps

haben Sie versucht das?

alertView.title = @"new title";
[alertView setNeedsDisplay];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top