Was ist besser für das laden von Daten aus der API - viewDidLoad, viewWillAppear oder viewDidAppear?
Mache ich eine IOS app, wo ich bin, die eine API aufrufen in der viewDidLoad-Methode des view-Controllers. Jetzt will ich neu laden das gleiche view-controller mit den Daten, die vom server. Wie viele Möglichkeiten gibt es, um diese Aufgabe, und was wäre der beste Weg?? Bitte helfen Sie mir.
Dank!!
bitte akzeptieren Sie jede Antwort, die Sie gefunden haben und Ihnen geholfen. so können andere Benutzer bekommen Hilfe, wenn Sie verwirrt und auch Sie fanden einfach gut beschrieben Antwort von mehreren Antworten.
InformationsquelleAutor Kirti | 2015-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
viewDidLoad
Methode wird aufgerufen, der ersten Zeit, alsUIViewController
zuerst geladen wird und wenn es pop und dann Sie eingeben, in dieser ZeitviewDidLoad
genannt wird. Also, wenn Sie wollen, laden Sie die API nur einmal, dannviewDidLoad
ist der beste Platz zum aufrufen einer API.viewWillAppear
aufgerufen, jedes mal, wenn Sie eingeben, dassUIViewController
und es ist der Ort, laden Sie die API, wenn Sie wollen, um sich zu erfrischen Daten (aktualisierte Daten).viewDidAppear
auch als wieviewWillAppear
aber bisschen spät genannt, alsviewWillAppear
also, wenn Sie wollen, rufen Sie die API jedes mal als der beste Ort istviewWillAppear
Methode.Weil
viewDidAppear
Methode aufgerufen spät von derviewWillAppear
Methode, und Sie sind nur die Beantragung der API, so die Antwort der API kann zu spät sein und Wenn die Benutzeroberfläche ändern, die basierend auf API-Antwort dann wird es geklebt UI der Anwendung, so gibt es eine beste Ort, um API-Aufruf entwederviewDidLoad
&viewWillAppear
Methoden.U R jederzeit willkommen 🙂 .
...Es ist Zweifel - viewdidload wird aufgerufen, erstmals einen viewcontroller geladen wird,aber ich bin aufrufen von api in viewcontroller1 und werde viewcontroller2 aber wenn ich wieder komme zurück zum viewcontroller1 API ruft wieder!!!!! Warum so??????
R Ihren api-Aufruf in der viewDidLoad-Methode oder der Methode viewWillAppear? Lies bitte den 2. Absatz viewWillAppear
ich denke, dass Ihr api-Aufruf ist in der Methode viewWillAppear. also, wenn Sie nicht möchten, um den Anruf wieder auf das zurück kommen, als Sie es nennen in viewDidLoad nur beruhigen Sie sich und Lesen Sie obige Antwort. hoffe es hilft dir.
InformationsquelleAutor JAY RAPARKA
viewDidLoad einmal aufgerufen wird. Wenn Sie navigation controller und tun hin und her, ou view-controller diese viewDidLoad - Methode wird nie aufgerufen. Erst wenn Sie diese ViewController wieder (ich.e [navContoller pushViewController]). Wenn Ihr api-Daten wird nie geändert, die Lebenszyklus dieser View-Controller dies ist die besseren Ort zu rufen Sie Ihren API -. Aber wenn Ihr api-Daten müssen Häufig anrufen [d.h. Rücken und zu schieben.her, diese view-controller] dann nicht so nennen sollte-api hier.
viewWillAppear: bevor Sie eine view-controller zeigt.Wenn Sie rufen Sie die api
innerhalb dieser Methode Sie UI-stack, bis das laden der Daten fertig. das sieht seltsam aus.vor dem laden der Ansicht der viewController diese "viewWillAppear" - Methode aufgerufen wird. Dies ist der Grund, es ist der name "viewWillAppear". Das bedeutet, dass diese Ansicht laden einige Zeit später (ich.e einige Mikro-Sekunde später). Wenn Sie rufen Sie Ihren api hier nach, was passieren wird, können analysiert werden. Sagen Sie, Ihre api-Rückgabe-Antwort nach 10 Sek. Dann UI friert ein/stuck für 10 Sek und Sie werden sehen, nach diesen 10 Sek später die Ansicht genannt.
viewDidAppear: nach Beendigung eines view-Controllers zeigt.So, Sie brauchen, um Ihr laden-API innerhalb dieser Methode.
nach dem laden der Ansicht der viewController diese "viewDidAppear" - Methode genannt. Dies ist der Grund, warum es den Namen "viewDidAppear". Das bedeutet, dass diese Ansicht geladen vor einiger Zeit (ich.e einige micro Sekunden).
vor dem laden der Ansicht der viewController diese "viewWillAppear" - Methode aufgerufen wird. Dies ist der Grund, es ist der name "viewWillAppear". Das bedeutet, dass diese Ansicht laden einige Zeit später (ich.e einige Mikro-Sekunde später).
InformationsquelleAutor Jamil
viewDidAppear
ist definitiv nicht die, die Sie verwenden möchten, es wird "pause" die Ansicht aus, die reagieren, während Sie die Daten laden.Normalerweise
viewDidLoad
ist die, die Sie wollen es zu platzieren.InformationsquelleAutor Zhihao Cui
Wenn wir bleiben in der selben ViewController,der drei Methode, viewdidload,viewwillappear,viewdidappear wird nicht erneut aufgerufen.Also bleiben wir in der gleichen view-controller, wir bekommen die Daten vom server,wir sollten rufen Sie die reload-Methode nach erhalten der Daten.
Hoffe diese Antwort kann dir helfen.
InformationsquelleAutor Alice
Ich denke viewWillAppear ist der beste Platz für das laden von Daten aus der API. Da viewDidLoad einmal aufgerufen, wenn der view geladen wird, aber viewWillAppear wird aufgerufen, wenn es geladen von der übergeordneten Ansicht oder untergeordneten Ansicht.
InformationsquelleAutor Dhiman Ranjit
Brauchen Sie nicht zu rufen API jedes mal, wenn Sie navigieren Sie zur view-controller, du musst es eine Zeit.
Wenn Sie eine TableView mit Zelle und diese Zelle bekommen von API und eröffnet neue ViewController, wenn Sie auf Sie drücken.
Also hier werden Sie nicht fügen Sie Ihre API in :
Fügen Sie es ein mal in viewDidLoad (), während wir brauchen, um zu minimieren die Anzahl der Anfragen so viele, wie wir können.
Beispiel auch wie folgt: - navigation-controller:
angenommen, Früchte und Autos präsentieren von API.
wenn Sie auf die Früchte, die Zelle, die Sie navigieren Sie zu der unten viewController:
Also, wenn Sie wollen, gehen Sie zurück zu der ersten Ansicht, controller, deutlich, brauchen Sie nicht neu zu laden api - es ist zwar bereits vorhanden.
In diesem Fall verwenden wir viewDidLoad() zu handhaben API Anfrage
InformationsquelleAutor Mohammed Ali Khaled