Wie erstelle ich einen Ladebildschirm, der jederzeit wiederverwendet werden kann. Ich kenne die Default.png, aber ich brauche die Flexibilität, einen Ladebildschirm zu jedem Zeitpunkt während des Anwendungslebenszyklus anzuschließen.Wie erstelle ich einen wiederverwendbaren Ladebildschirm?
Das ist, was ich bisher habe.
//inside a method that gets called by a UIButton
LoadingViewController* loadController = [[LoadingViewController alloc] initWithNibName:@"Loading" bundle:nil vertical:NO];
[self.view addSubview: loadController.view];
//some method call that takes a few seconds to execute
[self doSomething];
//This loads some other view, my final view
[self.view addSubview: someOtherView]
aber es scheint, dass die Ladeansicht nie angezeigt wird. Stattdessen bleibt die vorherige Ansicht dort, bis "someOtherView" hinzugefügt wird. Ich habe Trace-Logs geschrieben und der Code scheint ausgeführt zu werden, ich habe sogar [self doSomething] durch einen Schlaf ersetzt (2), aber die Zwischenladeansicht wird nie angezeigt.
Wenn ich [self.view entfernen addSubview: someOtherView]; dann nach ein paar Sekunden ... (nachdem doSomething fertig ausgeführt wird) wird die Ladeansicht angezeigt, da keine Ansicht darüber geschoben wird, dies ist jedoch offensichtlich nicht die Funktionalität, die ich möchte.
Kann dieses Verhalten erklären? Gibt es etwas über den Rendering-Zyklus, das ich falsch verstehe, weil es nicht scheint, dass die Ansicht (zumindest auf dem Bildschirm) sofort aktualisiert wird, obwohl ich eine [self.view addSubview: loadController.view];
Müsste ich einen separaten Thread erstellen?