viewWillAppear / viewDidAppear多次触发

时间:2011-10-11 19:25:03

标签: iphone objective-c ios

我正在使用TabBarKit,并且我希望每次用户返回标签时执行从网络服务中提取新内容的请求。

我无法将请求代码放在viewDidLoad中,因为它在返回选项卡时未被触发。话虽如此,我注意到在返回标签视图控制器时多次调用viewWillAppear / viewDidAppear。

如果我将请求代码放在那里,则会多次触发,导致Web服务被不必要地ping通。

我该如何解决这个问题?我应该在哪个方法中放置我的HTTP请求调用,以便每个视图执行一次?

2 个答案:

答案 0 :(得分:1)

您可以在提交异步下载之前尝试设置/检查downloadInProgress标志,然后在请求完成时重置该标志。

如果您正在使用类似ASIHTTPRequest的东西,那么在请求完成或失败时调用委托方法,这是您可以重置标志的点。它允许您单独标记每个请求,以便您可以跟踪每个请求的成功或失败,因此这不会限制您一次运行一个后台请求。

答案 1 :(得分:0)

转出来,在控制器代码中额外调用了viewWillAppear。如果您有兴趣关注这些更改,那么Git项目的问题部分会有thread

相关问题