我正在使用TabBarKit,并且我希望每次用户返回选项卡时执行从Web服务中提取新内容的请求 .
我无法将请求代码放在viewDidLoad中,因为它在返回选项卡时未被触发 . 话虽如此,我注意到在返回选项卡视图控制器时多次调用viewWillAppear / viewDidAppear .
如果我将请求代码放在那里,它会被多次触发,导致webservice被不必要地ping通 .
我怎么解决这个问题?我应该在哪个方法中放置HTTP请求调用,以便每个视图执行一次?
您可以在提交异步下载之前尝试设置/检查 downloadInProgress 标志,然后在请求完成时重置该标志 .
downloadInProgress
如果您正在使用类似ASIHTTPRequest的东西,那么在请求完成或失败时调用委托方法,这是您可以重置标志的点 . 它允许您单独标记每个请求,以便您可以跟踪每个请求的成功或失败,因此这不会限制您一次运行一个后台请求 .
转's out there was an extra call to viewWillAppear in the controller code. If you'有兴趣关注这些更改,Git项目的问题部分有一个thread .
2 回答
您可以在提交异步下载之前尝试设置/检查
downloadInProgress
标志,然后在请求完成时重置该标志 .如果您正在使用类似ASIHTTPRequest的东西,那么在请求完成或失败时调用委托方法,这是您可以重置标志的点 . 它允许您单独标记每个请求,以便您可以跟踪每个请求的成功或失败,因此这不会限制您一次运行一个后台请求 .
转's out there was an extra call to viewWillAppear in the controller code. If you'有兴趣关注这些更改,Git项目的问题部分有一个thread .