从API的viewDidLoad,viewWillAppear或viewDidAppear加载数据是更好的地方?

我正在做一个IOS应用程序,我在视图控制器的viewDidLoad方法调用一个API。 现在我想重新加载相同的视图控制器来自服务器的数据。 有多less方法可以做这个任务,最好的方法是什么? 请帮帮我。

谢谢!!

第一次调用viewDidLoad方法时,第一次加载UIViewController ,当它popup,然后你重新进入它的时候viewDidLoad被调用。 所以,如果你只想加载一次API,那么viewDidLoad是调用API的最佳地方。

viewWillAppear每当你进入UIViewController时调用,当你想要刷新数据(更新后的数据)的时候就是加载API的地方。

viewDidAppear也称为viewWillAppear但比viewWillAppear调用的时间稍晚,所以如果你想调用API,每次最好的地方都是viewWillAppear方法。

因为从viewWillAppear方法调用的viewDidAppear方法晚了,你只是请求API,所以API的响应可能会延迟,如果你的UI基于API响应改变,那么它将卡住应用程序UI,所以有一个最好的地方来调用API viewDidLoadviewWillAppear方法。

viewDidAppear绝对不是你想要使用的,它会暂停视图的响应,而你正在加载数据。

通常viewDidLoad是你想要放置它的人。

如果我们留在同一个ViewController中,那么三个方法viewdidload,viewwillappear,viewdidappear都不会再被调用。所以我们留在同一个视图控制器中,我们从服务器获取数据,得到数据后我们应该调用reload方法。 希望这个答案可以帮助你。

我认为viewWillAppear是从API加载数据的最佳地点。 因为viewDidLoad在视图加载时调用一次,而viewWillAppear在从父视图或子视图加载时调用。

viewDidLoad被调用一次。 如果您使用导航控制器并来回查看控制器,则不会调用此viewDidLoad方法。 直到你再次创build这个ViewController(即[navContoller pushViewController])。 如果你的api数据永远不会改变这个视图控制器生命周期 ,那么这是调用你的API好地方 。 但是,如果你的api数据需要经常调用 [即返回和push.forth这个视图控制器],那么你不应该在这里调用API

viewWillAppear :在视图控制器显示之前。如果你在这个方法里面调用你的API,你的UI将堆栈直到数据加载完成。 这看起来奇怪。在加载viewController的视图这个“viewWillAppear”方法被调用。 这是原因,它的名字是“viewWillAppear”。 这意味着这个观点会稍后加载(即稍后一秒钟)。 如果你在这里调用你的API后会发生什么让我们分析。 说,你的API在10秒后回复。 然后用户界面会冻结/卡住10秒,在这10秒后你会看到你的视图被调用。

viewDidAppear :在完成视图控制器显示之后。因此,您需要在此方法内调用您的加载API。