Objective-c, Wie neu zu laden anzeigen
Ich habe eine Seite, welche Prüfungen für internet-Konnektivität, und führt dann verschiedene Aktionen basierend auf dem Ergebnis. Zum Beispiel, wenn es keine internet-Verbindung, Knöpfe für download-Dateien sind deaktiviert, können bestimmte Tasten nicht vorhanden sind, sind in der Navigationsleiste bestimmten text ist, andere Farbe etc.
Ich würde gern noch eine "refresh" - button, so kann der Benutzer mit dem internet verbinden und laden Sie die Seite neu.
Meine Frage ist, wie mache ich die Ansicht aktualisieren? Aufruf von [self viewDidLoad]; sicher nicht das richtige, obwohl dies ist, wo alle Logik existiert. Brauche ich zum entfernen der Blick aus dem superView und neu einfügen, oder gibt es einen Weg, es zu tun, ohne Sie zu löschen?
Dank
- wie wollen Sie laden die anzeigen jetzt? von
viewDidLoad
? dann können Sie verschieben Sie den code, um eine neue Methode, "reload" und nennen es statt - Sollten Sie vielleicht bewegen, dass code, um einige Erreichbarkeits-Benachrichtigung, Rückruf, da sich Netzwerk-Verbindung können kommen und gehen.
- Ich dachte über das verschieben der viewDidLoad-code, um eine neue Methode, aber die code-Elemente Hinzugefügt, um der Seite ein Programm, basierend auf internet-Verbindung. Wenn ich die Methode aufrufen, wieder nach einem Klick auf die Schaltfläche aktualisieren klicken, werden alle diese Elemente werden Hinzugefügt, wieder... und wieder... und wieder. Sicher, ich konnte entfernen Sie zunächst alle Elemente der Seite (buttons, labels, images etc), aber dies scheint ein wenig kontraproduktiv, vor allem angesichts der Tatsache, dass mehr Elemente Hinzugefügt werden, um den code im Laufe der Zeit. Ist es nicht eine Anweisung, die Seite einfach neu laden?
- Check meine Antwort und warum gehst du nicht erklären, alle Ihre buttons in Ihre .h-Datei, und stellen Sie dann die Schaltflächen aktivieren und deaktivieren entsprechend. Es wird nicht viel von deinem code überarbeiten
- Ich bin sorry @P. J. Nicht sicher, ob ich verstehe. Aus all den Antworten, die ich war in der Lage zu akzeptieren, die ich als eine Antwort angekreuzt, ist die eine, die ich tun werden... platzieren von Elementen in ViewDidLoad und der Anpassung in eine neue Methode. Ich weiß, Sie haben erwähnt, deklarieren Sie Sie in einem .h-Datei, aber ich bin nicht in der Lage zu akzeptieren Kommentare an meine ursprüngliche Frage. was würden Sie angekreuzt haben? Don ' T wollen niemanden beleidigen, vor allem nach all die Hilfe, die angeboten wurde.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie Ihre gesamte Logik zum aktualisieren oder anzeigen design in separaten Methode und nennen es, wenn Sie es aktualisieren wieder.
Wenn Ihre Funktionalität überprüfen, internet-und wenn Sie mit
Reachability
Klasse von Apple, dann schreibenin Ihrem
viewDidLoad
,und dann schreiben Sie diesen code
und in den oben genannten
updateInterfaceWithReachability
- Funktion, können Sie aktualisieren Sie Ihre Ansicht, D. H. aktivieren und deaktivieren der buttons entsprechend.Hoffe das hilft Euch..
Ich würde es so machen:
In der viewDidLoad-würde ich erstellen, die alle benutzerdefinierten UI-Elemente. Ich kann sogar das layout Ihnen, es sei denn das layout ist ein bisschen dynamisch reagiert auf die Daten selbst. Ich würde die UIElements nur einmal.
In eine separate Methode, Erfahrungsberichte benannt configureView ich würde
- laden der Daten (es sei denn, asynchonous - wich ich schlage vor, das zu tun)
- Installation der UI-Elemente accoringly. Schalter-Werte, lable Texte etc.
- wahrscheinlich das layout der Elemente oder ausblenden/einblenden Sie oder enalbe/deaktivieren.
In den meisten Fällen, die ich nennen würde, configureView aus viewDidLoad. Oder ich würde es aus viewWillBecomeVisible. In diesem Fall wird die view aktualisiert wird, auch wenn der Blick wird sichtbar, wenn wieder aus irgendeiner anderen geschoben Ansicht oder, wenn Sie wieder eingeschaltet, um es innerhalb einer tab-Leiste.
Den refresh-Mechanismus (vermutlich eine Aktion, die mit einer Schaltfläche), wäre neu-laden der Daten und rufen Sie dann die configureView Methode zu.