首页 文章

viewWillAppear / viewDidAppear多次触发

提问于
浏览
0

我正在使用TabBarKit,并且我希望每次用户返回选项卡时执行从Web服务中提取新内容的请求 .

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

如果我将请求代码放在那里,它会被多次触发,导致webservice被不必要地ping通 .

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

2 回答

  • 0

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

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

  • 1

    转's out there was an extra call to viewWillAppear in the controller code. If you'有兴趣关注这些更改,Git项目的问题部分有一个thread .

相关问题