Frage

In meiner iPhone-Anwendung wählt ein Benutzer ein Element aus einem aus UITableView , um eine Ressource zum Anzeigen auszuwählen.Der UIViewController Die zur Verarbeitung der Ressource erforderliche Unterklasse ist erst bekannt, wenn die Ressource abgerufen wird. Dies kann einige Sekunden dauern.

Als Reaktion auf die Auswahlaktion schiebe ich einen „Lade“-Ansichtscontroller auf den Navigationsstapel.Dieser Controller präsentiert eine Ansicht mit a UIActivityIndicatorView zusammen mit (möglicherweise) anderen Statusinformationen und initiiert den Download der ausgewählten Ressource.Aus dieser Sicht könnte der Benutzer den Download abbrechen. In diesem Fall würde ich zur Liste der Ressourcen zurückkehren.Wenn die Ressource jedoch eintrifft, wird entsprechend ihrem Typ ein entsprechender neuer View Controller erstellt.

Hier wird es klebrig.Wenn ich die neue typspezifische Ansicht auf den Navigationsstapel schiebe, befindet sich die „Lade“-Ansicht immer noch im Stapel.Sobald der Ladevorgang abgeschlossen ist, besteht natürlich keine Notwendigkeit, zu dieser Ansicht „zurückzukehren“.Ich habe versucht, einfach die typspezifische Ansicht als Unteransicht der „Lade“-Ansicht hinzuzufügen, aber dadurch wird mein typspezifischer Controller nicht auf den Navigationsstapel verschoben, sodass er nicht über einen verfügt [SelbstnavigationController] zur weiteren Navigation.

Wie kann ich die aktuelle Ansicht im Navigationsstapel durch eine neue „ersetzen“?Oder allgemeiner: Wie kann ich Aktivität/Fortschritt anzeigen, wenn ich noch nicht weiß, welcher Controller zur Anzeige der abgerufenen Ressource verwendet wird?

Ich habe ziemlich coole „HUD“-Fortschrittsanzeigeklassen gefunden, aber ich möchte nicht, dass die Fortschrittsanzeige oben in der Liste der Elemente erscheint, aus denen ausgewählt wird.Stattdessen möchte ich, dass der Benutzer erkennt, dass er sich in einen neuen Bereich „begeben“ hat, der darauf wartet, ausgefüllt zu werden.

Ich bin ziemlich neu in diesem Bereich und hoffe, dass ich die Frage zumindest verständlich formuliert habe.Vielen Dank für jede Hilfe, die jemand leisten kann.

War es hilfreich?

Lösung

Aktualisieren: Tatsächlich wäre es wahrscheinlich besser, Ihre „Lade“-Ansicht als modale Ansicht anzuzeigen.Schau dir das an Frage für ein paar Beispiele.

Du solltest Pop der „Lade“-View-Controller und drücken den „spezifischen“ View Controller, sobald dieser heruntergeladen und zugewiesen wurde.Versuchen Sie, eine oder beide dieser Aktionen NICHT zu animieren, um herauszufinden, was das beste Erlebnis bietet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top